我有一个低于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]
你可以使用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;