如果你有一张表如下:
Col1 Col2
1 1
2 1
3 1
1 2
3 2
2 3
有没有办法写一个SQL查询,其中(Col2 = 1和Col2 = 2),结果是:
Col1
1
3
答案 0 :(得分:4)
您可以使用intersect
执行此操作。请注意,这在MySQL中无效。
select col1 from tablename where col2 = 1
intersect
select col1 from tablename where col2 = 2
答案 1 :(得分:3)
您可以将HAVING
与CASE WHEN
:
SELECT Col1
FROM your_table
GROUP BY Col1
HAVING SUM(CASE WHEN Col2 = 1 THEN 1 END) > 0
AND SUM(CASE WHEN Col2 = 2 THEN 1 END) > 0;
的 LiveDemo
强>
使用MySQL
,您可以写:
SELECT Col1
FROM your_table
GROUP BY Col1
HAVING SUM(Col2 = 1) > 0
AND SUM(Col2 = 2) > 0;
答案 2 :(得分:1)
自我加入版本:
{{1}}