レシピ データベースと見なすことができるデータベースがある場合、特定の材料で作成できるレシピのすべての 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以上含む可能性のあるものに関するものであるため、これは非常に長いクエリにつながります.