桌子
recipe_food_xref
recipe_id int
food_id int
需要在 recipe_food_xref 中找到一个记录,其中食谱只有一种食物并且该食物是特定食物。
它与自身完美结合:
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。基本上我想找到 recipe_id:1 因为它有 food_id:1 并且没有超过一个 food_id