列col1的值在col2中具有多个值

时间:2018-03-28 05:51:11

标签: sql

我有一张这样的表:

col1 col2
 a    10
 b    20
 a    30
 c    40
 a    05

我正在尝试编写一个查询来获取列col1中列col2中值为10,20,30的所有值。我使用了AND语句但它什么都没有返回

2 个答案:

答案 0 :(得分:2)

您可以使用IN子句提供多个输入

   SELECT col1 FROM yourtable WHERE COL2 IN (10,20,30)

相当于:

   SELECT col1 FROM yourtable WHERE COL2 = 10 OR COL2 = 20 OR COL2 = 30

答案 1 :(得分:0)

您可以使用group byhaving

执行此操作
select col1
from t
where col2 in (10, 20, 30)
group by col1
having count(distinct col2) = 3;

使用AND进行此类查询是一个非常非常常见的错误。问题是没有一行可以拥有所有三个值 - WHERE只是在过滤时一次查看一行。相反,您需要获取具有这些值的所有行,然后将这些行放在一起以查看每个col1值的匹配数。