Forum Webscript.Ru

Общие => Базы данных => Тема начата: Kubik от 19 Апреля 2002, 00:18:51

Название: хитрый SQL
Отправлено: Kubik от 19 Апреля 2002, 00:18:51
Помогите написать SQL запрос для:
есть две таблици:
   spisok        info
|--|--|--|--|  |--|----|
|id|c1|c2|c3|  |id|name|
|--|--|--|--|  |--|----|
| 1| 1| 0| 0|  | 1|xxx1|
| 2| 0| 0| 0|  | 2|xxx2|
| 3| 1| 1| 0|  | 3|xxx3|
| 4| 2| 0| 0|  | 4|xxx4|
| 5| 3| 0| 1|  | 5|xxx5|
|--|--|--|--|  |--|----|
поля c1,c2,c3 в таблице spisok являются указателями на id в info
в итоге надо получить результируюшую выбору
| 1|xxx1|
| 3|xxx1|
| 3|xxx1|
| 4|xxx2|
| 5|xxx3|
| 5|xxx1|

можно ли такое сделать одним SQL запросом? мысли шлите на serg@ens.ru
Название: хитрый SQL
Отправлено: Chs от 19 Апреля 2002, 10:03:22
Цитировать
можно ли такое сделать одним SQL запросом?

Можно. Тройной LEFT JOIN, но лучше сделать последовательно тремя запросами.
Название: а пример...
Отправлено: Kubik от 19 Апреля 2002, 10:07:18
Спасибо за ответ. Можно привести пример? Кстити, у меня этих c1,c2,c3...,c16, но можно и для трех.
Название: хитрый SQL
Отправлено: Chs от 19 Апреля 2002, 10:34:10
Цитировать
Спасибо за ответ. Можно привести пример? Кстити, у меня этих c1,c2,c3...,c16, но можно и для трех.

select a.id,b.name from spisok as a left join info as b on a.c1 = b.id
select a.id,b.name from spisok as a left join info as b on a.c2 = b.id
и т.д.
Название: re
Отправлено: Kubik от 19 Апреля 2002, 10:38:23
дык это очевидно. мне то надо одним запросом без UNION и других отсутствующих в MySQL 3.x прибомбасов!!!
Название: хитрый SQL
Отправлено: Chs от 19 Апреля 2002, 11:54:01
Цитировать

дык это очевидно. мне то надо одним запросом без UNION и других отсутствующих в MySQL 3.x прибомбасов!!!

Русским по бэкграунду написал, что так лучше не делать.
Название: хитрый SQL
Отправлено: Kubik от 19 Апреля 2002, 12:03:55
причем тут лучьше или хуже? надо одним запросов, надо!
Название: хитрый SQL
Отправлено: AlieN от 19 Апреля 2002, 15:08:02
Kubik

Цитировать
Можно. Тройной LEFT JOIN
Название: как????
Отправлено: Kubik от 19 Апреля 2002, 17:25:22
пример дайте тупому.....пожалуйсто