我在table
下面有一个名为Recipes
的示例数据,它充当其他junction table
之间的2 tables
。
查询-
select recipeId, IngredientId from Recipes where IngredientId in (1,31) order by recipeId
当我在execute
上方SQL
声明时,它在Output.
以下给出了答案。
要在下面突出显示的Output
下方,我必须在查询中进行哪些更改。
现在为什么要6
,7
和21
?
由于RecipeIds
6
,7
和21
是唯一具有Ids
both IngrdientIds
[i.e. 1,31]
答案 0 :(得分:3)
您可以使用group by
子句:
select RecipeIds
from table t
where IngrdientIds in (1, 31)
group by RecipeIds
having count(distinct IngrdientIds) = 2;
您还可以使用min()
和max()
函数:
having min(IngrdientIds) = 1 and max(IngrdientIds) = 31;