针对特定方案的SQL查询

jaj*_*aja 7 sql

考虑下面的样本表:

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

在此先感谢您的帮助.

Mos*_*cho 7

试试这个:

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子句中的项目数量.

  • @MostyMostacho:单独的"SQL-Fiddle"链接值得一些"+1":-) (4认同)
  • 非常感谢..这非常有意义:)来自我的+1是:) (2认同)