考虑下面的样本表:
Profile_ID Child_ID
1 1
1 2
1 3
2 1
2 2
3 1
3 2
3 3
3 5
我想构建一个SQL查询,它给出了适用于子节点1和2和3的配置文件ID ...这意味着profile_ID 2不会出现在结果中,因为配置文件2仅适用于子节点1和2 ..但我希望包含个人资料3。
我的想法与此相似
SELECT Profile_ID
FROM table
WHERE Child_ID IN (1 AND 2 AND 3)
现在,我很清楚IN
充当OR
函数...
是否有类似的方法来实现IN
子句与AND
而不是OR
类似的功能?
提前感谢您的帮助。
答案 0 :(得分:7)
试试这个:
select profile_id from t
where child_id in (1, 2 ,3)
group by profile_id
having count(distinct child_id) = 3
以下是fiddle。
注意:确保3
与in
子句中的项目数相匹配。