Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Помогите построить запрос   Найти похожие ветки 

 
dmdel ©   (2007-05-03 18:39) [0]

Здраствуйте, помогите построить запрос.
СУБД - FB 1.5
Есть несколько таблиц:
1. Dis : ID тип integer, Name Varchar(100); PK-id //Это список заболеваний
2. Cook : ID тип integer, Name Varchar(100); PK-id// Это способы приготовления какого-либо блюда
3. Rec : ID тип integer, Name Varchar(100); PK-id// Это список блюд
4. Dis_Exc_Cook: ID тип integer, Id_Cook тип integer, Id_Dis; PK-id, внешние ключи: Id_Cook=Cook.id и Id_Dis=Dis.id// В этой таблице хранится информация, при каком заболевании- какой способ приготовления блюда исключить
5. Rec_Cook: ID тип integer, Id_Cook тип integer, Id_Rec; PK-id, внешние ключи: Id_Cook=Cook.id и Id_Rec=Rec.id// В этой таблице хранится способы приготовления того или иного блюда.
Нужно сформировать запрос, который бы при вводе Dis.id выдавал список блюд, которые ему можно употреблять. Надеюсь понятно объяснил. У меня есть вариант с вложенными запросами, но их получается 3 штуки. Думаю, что это можно сделать проще. Предложите свой вариант. Заранее спасибо


 
Asail   (2007-05-03 19:15) [1]

SELECT *
FROM Rec
WHERE ID not in (
 SELECT R.ID
 FROM Dis_Exc_Cook DE
   LEFT JOIN Cook C ON (DE.Id_Cook=C.ID)
   LEFT JOIN Dis D ON (DE.Id_Dis=D.ID)
   LEFT JOIN Rec_Cook R ON (R.Id_Cook=C.ID)
 WHERE D.ID = :ID
)


Типа такого? (Не проверял, правда, но должно работать)



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.094 c
15-1176883038
beginer_
2007-04-18 11:57
2007.05.20
PHP: не загружаются MP3-файлы на сервер


2-1177655849
OlegMV
2007-04-27 10:37
2007.05.20
Проблема с координатами


2-1178273173
Doom-2
2007-05-04 14:06
2007.05.20
Как запустить приложения по очереди?


15-1177076711
Ringo
2007-04-20 17:45
2007.05.20
Вот те раз! А я думал, - Медведев...


2-1178185619
Alanu
2007-05-03 13:46
2007.05.20
как определить имя компонента