Проблема вот в чем:
у меня есть две таблицы. В первой таблице(DISK) - ID_A, DISK_1, DISK_2. Во второй(OPISANIE) - ID_B, OPISAN. В поля DISK_1 и DISK_2 я записываю ID_B. И таблички мне надо так объединить, чтобы выводилось поле OPISAN для каждого DISK_1 и DISK_2.
Interbase 6.0
Я пишу программу в Delphi и когда пытаюсь составить запрос на объединение этих таблиц, мне программа присваивает для каждого поля DISK_1 и DISK_2 соответственно ID_B1 и ID_B2. Запрос я строю таким образом - Select * from DISK d FULL JOIN OPISANIE o on d.DISK_1=o.ID_B FULL JOIN OPISANIE op on d.DISK_2=op.ID_B
это прокатывает, но выдает ошибку, что не найдено поле ID_B2. Буду признательна за помощь!
Не знаю как правильно объединить таблицы!
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Код: Выделить всё
SELECT
d.ID_A,
d.DISK_1, -- или o1.ID_B AS ID_B1
o1.OPISAN AS OPISAN_DISK_1,
d.DISK_2, -- или o2.ID_B AS ID_B2
o2.OPISAN AS OPISAN_DISK_2
FROM DISK d
LEFT JOIN OPISANIE o1 on d.DISK_1=o1.ID_B
LEFT JOIN OPISANIE o2 on d.DISK_2=o2.ID_B