|
Тема
|
MySQL
|
|
Автор |
Lizard (приятел) |
Публикувано | 05.07.01 16:21 |
|
имам една таблица в която са записани ID2 и ID3 - идентификатори от други 2 таблици
table 1
ID ID2 ID3 Data1
1 1 1 neshto11...
2 1 2 neshto12...
3 2 neshto13...
4 3 neshto14...
table 2
ID Data2
1 neshto21...
2 neshto22...
3 neshto23...
4 neshto24...
table 3
ID Data3
1 neshto31...
2 neshto32...
3 neshto33...
4 neshto34...
как да напиша заявка, която търси нещо в полетата Data1,2,3 и ми дава записите от първата таблица. Ще дам пример, защото ми се струва, че не мога да го обясня добре.
значи
вземаме примерно втория запис от table1
там пише да вземе първия от table2 и втория от table3
и така правиме си "neshto12+neshto21+neshto32" и търсиме в него
ако го намериме извеждаме ID 2
вземаме третия запис от table1
там пише да вземе първия от table2 и втория от table3
и така правиме си "neshto12+neshto21" и търсиме в него
ако го намериме извеждаме ID 3
Много благодаря, предварително!
| |
Тема
|
Re: MySQL
[re: Lizard]
|
|
Автор |
curly (Well known :P) |
Публикувано | 05.07.01 17:00 |
|
na primafista malko :>
mysql> select table1.id, table1.id2,table1.id3, concat( table1.data1, table2.data2, table3.data3) as searchString from table1,table2,table3 where concat( table1.data1, table2.data2, table3.data3) like '%33%' and table1.id=3 and table2.id=table1.id2 and table3.id=table1.id3;
+----+-----+-----+--------------------+
| id | id2 | id3 | searchString |
+----+-----+-----+--------------------+
| 3 | 3 | 3 | data13data23data33 |
+----+-----+-----+--------------------+
1 row in set (0.00 sec)
mysql> select table1.id, table1.id2,table1.id3, concat( table1.data1, table2.data2, table3.data3) as searchString from table1,table2,table3 where concat( table1.data1, table2.data2, table3.data3) like '%23%' and table1.id=3 and table2.id=table1.id2 and table3.id=table1.id3;
+----+-----+-----+--------------------+
| id | id2 | id3 | searchString |
+----+-----+-----+--------------------+
| 3 | 3 | 3 | data13data23data33 |
+----+-----+-----+--------------------+
1 row in set (0.01 sec)mysql> select table1.id, table1.id2,table1.id3, concat( table1.data1, table2.data2, table3.data3) as searchString from table1,table2,table3 where concat( table1.data1, table2.data2, table3.data3) like '%23%' and table1.id=2 and table2.id=table1.id2 and table3.id=table1.id3;
Empty set (0.01 sec)
mysql> select table1.id, table1.id2,table1.id3, concat( table1.data1, table2.data2, table3.data3) as searchString from table1,table2,table3 where concat( table1.data1, table2.data2, table3.data3) like '%data12%' and table1.id=2 and table2.id=table1.id2 and table3.id=table1.id3;
+----+-----+-----+--------------------+
| id | id2 | id3 | searchString |
+----+-----+-----+--------------------+
| 2 | 2 | 2 | data12data22data32 |
+----+-----+-----+--------------------+
1 row in set (0.00 sec)
predpolagam 4e salle sha kae po-dobyr na4in za tfa :>
like '%string-looking-for%' e string koito tyrsis
table1.id=id-to-na-table1-za-koeto-tyrsis
rgdz
curly
| |
|
Имам молба:
Опитай се да го обясниш по-добре. Нали знаеш, че кото успееш да си обясниш проблема на някой друг това е поне половината от пътя към решението.
Какво всъщност искаш да получиш като резултат? Какво конкретно съдържат тези таблици? Започни с по-простия вариант - само 2-таблици. Даже една.
"Искам от първата таблица да взема това и това и евентуално за n-тата колона от първата таблица да взема x-тата колона от 2-рата ... " и т.н.
В базите данни никога няма общо решение. Всичко и винаги се прави според конкретния случай. Най-вероятно ще стигнеш до извода, че трябва да промениш изцяло таблиците.
Linux is like a wigwam - No Windows, No Gates, Apache inside
| |
Тема
|
Re: MySQL
[re: curly]
|
|
Автор |
salle (рЮЙЗБ) |
Публикувано | 05.07.01 17:46 |
|
Curly
Не забравяй да кажеш и че like '%nnn%' трябва да се избягва винаги когато е възможно :))
За разлика от like 'nnn%'
Linux is like a wigwam - No Windows, No Gates, Apache inside
| |
Тема
|
Re: MySQL
[re: salle]
|
|
Автор |
curly (Well known :P) |
Публикувано | 06.07.01 19:04 |
|
Dade
ma tfa beshe na primafista fse pak :>
i spored tfa koeto razbrah ot problema, tfa moito e reshenie det (mai) raboti
rgdz
curly
| |
Тема
|
Re: MySQL
[re: salle]
|
|
Автор |
Lizard (приятел) |
Публикувано | 09.07.01 13:04 |
|
Преборих се с проблема.
10х
| |
|
|
|
|