Sql

Сложные запросы

Примеры решений сложных запросов:

1. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номером
select produkt
from produkty
where pr in(
select sostav.pr
from sostav inner join  menu on (sostav.rec = menu.rec)
group by sostav.pr
having  count(distinct sostav.rec)
=  (
select count(distinct sostav.rec)
from sostav inner join  menu on (sostav.rec = menu.rec)
)
)

2. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номером 1. (Обязательно использование JOIN).
select bluda.bluda, sum(zakazy.k_vo_porc)
from mesta
inner join zakazy on (mesta.ms = zakazy.ms)
inner join menu on (zakazy.m = menu.m)
inner join bluda on (menu.bl = bluda.bl)
where nom_stol = 1
group by bluda.bluda

3. Выдать названия блюд, в которых используются продукты, поставляемые только поставщиком ‘Урожай’ и не поставляемые никаким другим поставщиком (Обязательно использование JOIN).
select bluda.bluda
from bluda inner join recepty
on (bluda.bl = recepty.bl)
where recepty.rec in (
select sostav.rec
from sostav
where sostav.rec in (
select postavki.pr
from postavki
where ps in (select ps from postavschiki where nazvanie = 'Урожай')
and pr in (
select postavki.pr
from postavschiki inner join postavki
on (postavschiki.ps = postavki.ps)
group by postavki.pr
having count(postavki.ps)=1
)
)
group by sostav.rec
having count(sostav.pr) in (
select postavki.pr
from postavki
where ps in (select ps from postavschiki where nazvanie = 'Урожай')
and pr in (
select postavki.pr
from postavschiki inner join postavki
on (postavschiki.ps = postavki.ps)
group by postavki.pr
having count(postavki.ps)=1
)
)
)
Теги:
MySQL
Добавлено: 22 Сентября 2013 01:51:53 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...