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