选择一个条款,但应该表现得像和



IN子句与 OR

类似
select from table where id in (1, 2, 3)

IE 在组匹配中的任何项目中选择(如果ID为1、2或3)。


我需要类似的东西,但是基于两列,仅当ColumnA具有ColumnB的所有值时,它才能返回。

对于Eg,

  ColumnA         ColumnB
---------------------------
    1               a
    2               b
    3               c
    1               a
    1               b
    1               c

select CoumnA from table where CoumnA in every ColumnB of (a, b, c);
 -> 1 --since only 1 has all a, b and c
select CoumnA from table where CoumnA in every ColumnB of (b);
 -> 1 --since 1 has b
 -> 2 --since 2 has b

等等。我知道in every of不是一个合适的关键字,我只是想显示一个示例。

我无法尝试任何事情,因为我无法绕过这种逻辑。

尝试仅使用IN(a,b,c)ID组为count(distinct id) = 3

何处:

select t1.ColumnA from table t1 where 
exists (select * from table t2 where t1.ColumnA=t2.ColumnA and t2.ColumnB='a')
and exists (select * from table t2 where t1.ColumnA=t2.ColumnA and t2.ColumnB='b')
and exists (select * from table t2 where t1.ColumnA=t2.ColumnA and t2.ColumnB='c')
group by t1.ColumnA

相关内容

  • 没有找到相关文章

最新更新