Помогите с sql запросом

Статус
В этой теме нельзя размещать новые ответы.

rasandrey

Участник
Регистрация
2 Апр 2009
Сообщения
214
Реакции
6
Есть 5 таблиц:
Код:
table1,table2,table3,table4,table5

table1 - Общая, которая имеет столбцы: id, id2, id3, id4, id5
Здесь id2, id3, id4, id5 - это id полей из таблиц table2,table3,table4,table5

table2,table3,table4,table5 - Таблицы включают столбцы id,name.

Как правильнее всего сделать запрос к таблице 1, чтобы в итоге получить такой результат:

id значение name таблицы2 значение name таблицы3 значение name таблицы4 значение name таблицы5

Делаю так:
Код:
select id, (select name from table2 where id = id2), (select name from table3 where id = id3), (select name from table4 where id = id4), (select name from table5 where id = id5) from table1
 
так всё же правильно делаешь,
ещё можно так
Код:
SELECT d1.id, d1.name1, d1.name2, d1.name3, d2.name as name4
FROM (
SELECT c1.id, c1.id5, c1.name1, c1.name2, c2.name as name3
FROM (
SELECT b1.id, b1.id4, b1.id5, b1.name1, b2.name as name2
(
SELECT a1.id, a1.id3, a1.id4, a1.id5, a2.name as name1
FROM table1 a1, table2 a2
WHERE a1.id2 = a2.id
) b1, table3 b2
WHERE b1.id3 = b2.id ) c1, table4 c2
WHERE c1.id4 = c2.id ) d1, table5 d2
WHERE d1.id5 = d2.id
но так долго писать и +++дольше выполнение
 
Все правильно написали до меня, можно еще конечно JOIN'ами, но зачем. Но мой совет, когда дело доходит вот до такой котовасии - использовать foreign ключи. Есть много программ для визуального построения структур таблиц, простейшая, которую знают все - MS Access :) Тупо соединяя таблички стрелочками в итоге получишь SQL код, который позволит тебе избавится от твоей table1 и получить всякие няшки типа каскадного обновления.
 
все верно в 1 и 2 постах

а в чем суть вопроса?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху