Как сделать 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 мы оставим из них только те, в которых нашлось два подходящих ингредиента, то есть оба.