Как сделать SELECT "блюд" по "ингредиентам"?

Есть таблица с "блюдами" и их "ингредиентами":

    id  title             ingr
    1   яичница           яйца
    2   яичница           соль
    3   омлет             яйца
    4   омлет             молоко
    5   омлет             соль
    6   капучино          кофе
    7   капучино          молоко
    8   соль с яйцами     яйца
    9   соль с яйцами     соль

Как вывести разные блюда с одинаковыми ингредиентами?
Входные данные: ['яйца', 'соль']
Выходные данные: ['яичница', 'соль с яйцами']

http://sqlfiddle.com/#!7/386f1/3


Ответы (1 шт):

Автор решения: Герман Борисов
SELECT title
FROM recepts
WHERE ingr IN ('яйца', 'соль')
GROUP BY title
HAVING COUNT(*) = 2

Вот таким запросом мы получим рецепты, которые содержат яйца и/или соль. А благодаря HAVING мы оставим из них только те, в которых нашлось два подходящих ингредиента, то есть оба.

→ Ссылка