针对特定方案的SQL查询

时间:2012-04-29 18:50:48

标签: sql

考虑下面的样本表:

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类似的功能?

提前感谢您的帮助。

1 个答案:

答案 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

注意:确保3in子句中的项目数相匹配。