如果我有一个可以被视为食谱数据库的数据库,我如何选择我可以用给定成分制作的食谱的所有 id,例如,如果我有成分 1 和 4,它将返回 3,因为这是唯一的我可以用它做的食谱。
将有大约 50 种成分和更多食谱。
我看到了几种可能性,比如使用 UNION/几个连接,......但我没有看到一个简单的简单解决方案来解决这个问题。
Recipes Recipes/Ingredients Ingredients
1 1 1 1
2 1 2 2
3 2 1 3
2 3 4
2 4
3 1
3 4
编辑/
我想解决它的方法:
select recipe_id from Recipes
where recipe_id in (
select recipe_id from Recipes_Ingredients where ingredient_Id = 1
UNION
select recipe_id from Recipes_Ingredients where ingredient_Id = 4
)
这将导致很长的查询,因为我的数据库实际上并不是关于成分,而是关于其中可以包含 50 种或更多这些东西的东西。