我有桌子:
ID Name label
1 Jan 1
2 Jan 2
3 Adam 2
4 Adam 10
5 Kasia 1
我想仅使用标签1和标签2
获取记录例如:
1 Jan
我有很多标签,所以在subselect的subselect中进行subselect选择......这是个坏主意
答案 0 :(得分:1)
您可以通过各种方式执行此操作。我首选的方法是group by
和having
:
select min(id), name
from table
group by name
having sum(case when label = 1 then 1 else 0 end) > 0 and
sum(case when label = 2 then 1 else 0 end) > 0 ;
对于每个名称,这将计算出现“1”并出现“2”的次数。 > 0
确保每个至少出现一次。
答案 1 :(得分:1)
另一种方法是使用intersect
运算符。
select id, name
from tablename where label = 1
intersect
select id, name
from tablename where label = 2