SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.01.2011 20:57:14

Fautor
Участник
Зарегистрирован: 03.01.2011
Сообщений: 2

Помогите со сложным SQL-запросом

Добрый день! Имеется проблема с составлением запроса, упрощенная структура БД выглядит следующим образом:

Блюда
- dish_id
- name

Продукты
- food_id
- name

Рецепты
- dish_id
- food_id
- amount

Холодильники
- fridge_id
- food_id

Задача в следующем: необходимо максимально оптимальным способом получить список всех блюд (dish_id), которые можно приготовить используя конкретный холодильник (fridge_id).
Поскольку это MySQL, то хранимые процедуры не помогут, вот у меня возникли сомнения, что это вообще не реально реализовать только средствами СУБД, будет интересно знать ваше мнение.
Заранее спасибо!

Неактивен

 

#2 04.01.2011 12:41:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите со сложным SQL-запросом

Почему в MySQL хранимые процедуры не помогут?

Что-нибудь такое?

SELECT dish_id FROM
(SELECT DISTINCT dish_id FROM recipes JOIN fridges USING (food_id) WHERE fridge_id = 1)
WHERE dish_id NOT IN
(SELECT dish_id FROM recipes r LEFT JOIN fridges f ON (r.food_id = f.food_id AND fridge_id = 1)
WHERE f.food_id IS NULL)

Неактивен

 

#3 07.01.2011 02:10:28

Fautor
Участник
Зарегистрирован: 03.01.2011
Сообщений: 2

Re: Помогите со сложным SQL-запросом

Спасибо, запрос работает.
А хранимые процедуры в MySQL, насколько мне известно, не могут возвращать набор данных, который мне и нужен

Неактивен

 

#4 09.01.2011 01:54:29

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Помогите со сложным SQL-запросом

Вам известно неправильно. Хранимые процедуры могут возвращать даже несколько
наборов данных smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson