如果我有一個數據庫可以看作是食譜數據庫,如何選擇我可以用給定成分製作的所有食譜的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個或更多的這些東西。
[你有什麼試過](http://www.whathaveyoutried.com)? – Kermit 2013-03-13 14:20:43
檢查此鏈接http://stackoverflow.com/questions/349559/sql-how-to-search-a-many-to-many-relationship – Mingebag 2013-03-13 14:21:11
@Aarolama Bluenk我已經搜查,我將能夠解決這個問題UNION聲明。我認爲這不是最好的解決方案,到目前爲止我還沒有找到更好的方法,這就是爲什麼我認爲每天有這方面經驗的人能夠給出一個直接的答案。我不希望有任何疑問或問題,只是解決這些問題的恰當方法。 – 2013-03-13 14:22:26