Общие > Базы данных
хитрый SQL
Kubik:
Помогите написать 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
Chs:
--- Цитировать ---можно ли такое сделать одним SQL запросом?
--- Конец цитаты ---
Можно. Тройной LEFT JOIN, но лучше сделать последовательно тремя запросами.
Kubik:
Спасибо за ответ. Можно привести пример? Кстити, у меня этих c1,c2,c3...,c16, но можно и для трех.
Chs:
--- Цитировать ---Спасибо за ответ. Можно привести пример? Кстити, у меня этих 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
и т.д.
Kubik:
дык это очевидно. мне то надо одним запросом без UNION и других отсутствующих в MySQL 3.x прибомбасов!!!
Навигация
Перейти к полной версии