考虑下面的样本表:
Profile_ID Child_ID
1 1
1 2
1 3
2 1
2 2
3 1
3 2
3 3
3 5
Run Code Online (Sandbox Code Playgroud)
我想构建一个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)
Run Code Online (Sandbox Code Playgroud)
现在,我很清楚这IN是一个OR函数...是否有类似的方法来实现类似的功能IN与一个AND而不是一个OR?
在此先感谢您的帮助.
试试这个:
select profile_id from t
where child_id in (1, 2 ,3)
group by profile_id
having count(distinct child_id) = 3
Run Code Online (Sandbox Code Playgroud)
这是小提琴.
注意:确保3匹配in子句中的项目数量.