Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Правильный ли SQL запрос? (http://forum.oszone.net/showthread.php?t=194019)

Hector 15-12-2010 01:15 1566140

Правильный ли SQL запрос?
 
Есть задача:
Цитата:

Построить SQL-запрос для выборки сведений из БД, содержащей таблицы:
Блюдо (ном_бл, назв_бл, категория) – справочник блюд;
Продукт (ном_прод; назв_прод, калорийность) – справочник продуктов;
Рецепт (ном_бл, ном_пр, кол_прод_в_блюде) – сколько некоторого продукта в некотором блюде.
Извлечь номера и названия блюд, содержащих в количестве более 100 ед. хотя бы один продукт из тех, которые содержит блюдо "Жюльен с грибами а ля рюс".
с SQL знаком поверхностно, думаю придется решать с помощью вложенных запросов, т. е. сначала найти продукты входящие в "жюльен с грибами а ля рюс", а потом выбрать те из них в которых количество ингридиентов больше 100, накропал такой код
Код:

SELECT Блюдо.ном_бл, Блюдо.назв_бл
FROM (SELECT Блюдо.ном_бл, Блюдо.назв_бл, Продукт.назв_прод, Рецепт.кол_прод_в_блюде,
                        FROM Рецепт, Блюдо, Продукт;
                        WHERE Блюдо.назв_бл='Жюльен с грибами а ля рюс') itog,
WHERE itog.кол_прод_в_блюде>100

нормальное ли это решение? (сильно не пинать :))

Delirium 15-12-2010 01:34 1566145

неверно, у тебя рецепт, блюдо и продукт не связаны между собой по ключевым полям. Попробуй так:

Код:

SELECT Блюдо.ном_бл, Блюдо.назв_бл FROM Рецепт, Блюдо, Продукт where
Рецепт.ном_бл=Блюдо.ном_бл AND
Продукт.ном_прод=Рецепт.ном_пр AND
Блюдо.назв_бл='Жюльен с грибами а ля рюс' AND
Рецепт.кол_прод_в_блюде >100


Hector 15-12-2010 01:36 1566146

Delirium, дело в том, что исходных данных нет, есть только условие, т. е. практически проверить решение трудновато

Delirium 15-12-2010 02:22 1566157

Hector, в таких случаях я быстренько клепаю таблицы в Access и создаю тестовые записи. На их основе делаю запросы.


Время: 15:55.

Время: 15:55.
© OSzone.net 2001-