【发布时间】:2014-08-01 13:04:23
【问题描述】:
我有两张表如下:
表格:食谱
字段:recipe_ID、title
表格:recipe_ingredient
字段:recipe_ID、ingredient_ID
我想只显示包含某些成分的食谱(我设法做到了那部分),但我也想排除包含某些成分的食谱。
到目前为止,我设法完成了这个查询,它正在工作,但它只显示包含某些成分的食谱。
SELECT DISTINCT r.recipe_ID, r.title
FROM recipe r
JOIN recipe_ingredient ri ON (ri.recipe_ID = r.recipe_ID)
WHERE ri.ingredient_ID IN (4, 7)
GROUP BY r.recipe_ID
HAVING COUNT(ri.ingredient_ID) = 2
如何使包含某些成分的食谱也排除在外? 我尝试了一些方法,但都失败了。
注意:出于演示目的,4、7 和 Count 值是静态的。
请询问您是否需要更多信息或任何东西。
非常感谢!
【问题讨论】:
-
所以你想要一些不在数组中的成分?
-
据我了解,您想要的是所有包含某些成分(A 组)但没有其他成分(B 组)的食谱的列表。现在集合 A 可能是子集/超集或完全差异集?
-
我想要一份清单,其中包含一些包含某些成分但没有其他成分的食谱。因为例如,你不喜欢苹果,所以你想要没有苹果的食谱。但现在没关系,我相信我已经收到了一个很好的答案。谢谢大家的关注。