テーブル
recipe_food_xref
recipe_id int
food_id int
レシピに 1 つの食品しかなく、その食品が特定の食品である、recipe_food_xref 内の 1 つのレコードを見つける必要があります。
それ自体に完全に結合して機能します。
SELECT x1.recipe_id FROM recipe_food_xref x1
INNER JOIN recipe_food_xref x2 ON x2.recipe_id = x1.recipe_id
WHERE x1.food_id = 1
GROUP BY x1.recipe_id
HAVING COUNT(x2.recipe_id) = 1
それは少し醜いようですが、もっと良い方法があるかどうか知りたいです。
サンプル データを含む SqlFiddle を次に示します。基本的には、food_id:1 があり、複数の food_id を持たないため、recipe_id:1 を見つけたいと考えています。