Страница 1 из 1

Запрос из таблиц с отношением многие-ко-многим

Добавлено: 15 апр 2008, 09:13
ViTality
Имеються две таблицы STUDS, ORDERS связанные через третью LINKS. (изображение прилагаеться)
Изображение
Это список студентов и приказы. Отношение многие-ко-многим, т.к. одним приказом студентов зачисляют, и на одного студента может быть несколько приказов. Связь делал по книге Хелен Борри(тольлко начал читать, выборочно) поэтому двойной ключ в LINKS.

Пишу клиента. на главной форме расположен список студентов из STUDS. При редактировании какой либо записи студента открываеться модальная форма со всеми данными. и на этой форме нужно получить список приказов с которыми связан студент через LINKS.

Помогите пожалуйста сформировать запрос.
пытаюсь так но невыходит:

Код: Выделить всё

select
      ORDERS.ORDER_ID,
      ORDERS.ORDER_NUMBER,
      ORDERS.ORDER_DATE,
      ORDERS.ORDER_TYPE,
      ORDERS.COMMENT,
      LINKS.STUD_ID,
      LINKS.ORDER_ID
from
    ORDERS, LINKS
where ((ORDERS.ORDER_ID=LINKS.ORDER_ID)
     and (LINKS.STUD_ID= :STUD_ID))     

п.с.
база - Firebird
клинет на Lazarus+FBDataSet

Добавлено: 15 апр 2008, 09:35
RedAndBlack
join не пробывал?
чо нить типа

Код: Выделить всё

select ORDERS.ORDER_ID,
      ORDERS.ORDER_NUMBER,
      ORDERS.ORDER_DATE,
      ORDERS.ORDER_TYPE,
      ORDERS.COMMENT,
      LINKS.STUD_ID,
      LINKS.ORDER_ID 
from LINKS
join ORDERS on (ORDERS.ORDER_ID=LINKS.ORDER_ID)
where
LINKS.STUD_ID= :STUD_ID

Добавлено: 15 апр 2008, 11:02
ViTality
Спс. оба варианта запроса работают если вместо :STUD_ID подставить число. плучаеться чтото с программой....

Добавлено: 15 апр 2008, 11:08
RedAndBlack
а как ты параметр :STUD_ID передаешь?

Добавлено: 15 апр 2008, 11:10
ViTality
Во-во! какраз забыл добавить в код строку для :STUD_ID
Разобрался, в коде программы ошибка была.
Всеравно большое спасибо. Буду использовать твой вариант, т.к. про свой читал что такого вида запросы не рекомендуеться использовать в новых программах, а поддерживаються они только для работоспособности старых прог.

п.с. извините что "впустую" создал тему. просто как всегда прогу сдать нужно "еще вчера", а глаз уже замылилился

Добавлено: 15 апр 2008, 18:01
kdv