SQL选择仅包含特定值的行

时间:2016-06-11 01:54:42

标签: mysql sql row unique multiple-columns

我在这里遇到同样的问题:SQL select rows with only a certain value in them

但我找到的解决方案仅适用于给定的一个值,我的意思是我希望它能用于多个值{2或+},例如:

Col 1 Col 2 Col 3
1       A     1
2       A     2
3       B     1
4       C     1
5       C     2
6       D     1 
7       C     3 

我希望获得仅包含cols3 = 1和cols3 = 2 ON的所有行(仅值1和2),输出将为:" A"对于给出的表,我不想要C,因为它有另一个cols 3!= 1或2的值, 链接中的解决方案允许只为一个值执行此操作,但我想将其扩展为2或更多值,有人可以帮助我:D

2 个答案:

答案 0 :(得分:0)

SELECT col 2 FROM TABLE 在哪里(第3栏= 1        OR col 3 = 2)   AND col 2 NOT IN     (SELECT col 2      FROM TABLE      WHERE(col 3<> 2             AND col 3<> 1));

答案 1 :(得分:0)

您可以使用conditional aggregation

select col2
from yourtable
group by col2 
having sum(col3=1) > 0 
  and sum(col3=2) > 0
  and sum(col3 not in (1,2)) = 0