Таблицы в БД.
Примеры решений сложных запросов:
1. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номеромselect produkt
2. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номером 1. (Обязательно использование JOIN).
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)
)
)select bluda.bluda, sum(zakazy.k_vo_porc)
3. Выдать названия блюд, в которых используются продукты, поставляемые только поставщиком ‘Урожай’ и не поставляемые никаким другим поставщиком (Обязательно использование JOIN).
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
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
)
)
)