我有兩個表通過關聯錶鏈接多對多關係。如何查詢mySQL中的多對多數據庫?
這個想法是搜索一個或多個配料,返回一個或多個食譜,而不返回同一食譜的倍數。
Recipe_Table Recipe_ID Recipe_Name
Ingredients_Table Ingredients_Table Ingredient_ID Ingredient_Name
Associative_Table Ingredient_ID(FK) Recipe_ID(FK)
查詢我有如下:
SELECT r.recipe_name, i.ingredient_name, ri.amount FROM recipes r
INNER JOIN recipes_ingredients ri on r.recipe_id = ri.recipe_id
INNER JOIN ingredients i on ri.ingredient_id = i.ingredient_id
WHERE i.ingredient_name IN ('eggs', 'flour');
這工作不錯,但相同的配方的回報倍數,例如,如果我查詢「蛋」和「麪粉」,它返回煎餅兩次,而我只希望它匹配一次。
發佈樣本數據和預期結果。在這樣做的時候,你可能會明白,你不需要任何其他的結果。 –
爲每種原料返回配方似乎是合理的。你期望會發生什麼? – Strawberry