我的数据库中有两个表Recipes Table
和Ingredients Table
。
数据库如下所示:
Recipes Table:
recipe_id
recipe_name
Ingredients Table:
ingredient_id
recipe_id
ingredient_name
这些表格由recipe_id
连接。
我正在开发的功能允许用户选择最多四种成分,并且将显示包含这些成分的所有配方。
我想要的查询如下:
Get all the recipes that contain ingredients pork, pepper, tomato, salt.
查询应仅返回包含所有成分的配方。
我该怎么做?
编辑:我知道如何加入表,但无法创建一个提供我想要的结果的查询。在这一点上,我正在寻找一个直接的答案,而不是一个关于如何自己做的建议。感谢。
答案 0 :(得分:1)
尝试类似:
SELECT recipe_id
FROM ingredients
WHERE ingredients_name IN ('pork', 'pepper', 'tomato', 'salt')
GROUP BY recipe_id
HAVING COUNT(distinct ingredients_name) = 4