假设我有一个这样的表:
表格1:
name favorite_music
a country
b rock
a jazz
b jazz
如何执行此查询:查找其“favourite_music”样式同时具有“country”和“jazz”的名称。对于上面的示例,它应该仅为“a”。
最佳答案
这应该使他们:
select name
from table1
where favorite_music = 'country'
intersect
select name
from table1
where favorite_music = 'jazz'
编辑:问题不是很清楚。上面的查询将返回具有爵士乐和乡村音乐的所有名字(在您的示例表中,name ='a')
编辑2 :只是为了好玩,一个示例应该使用子查询一次扫描一次:
select name from (
select
name,
count(case when favorite_music = 'country' then 1 end) as likes_country,
count(case when favorite_music = 'jazz' then 1 end) as likes_jazz,
from table1
where favorite_music in ('country', 'jazz')
group by name
) where likes_country > 0 and likes_jazz > 0
关于sql - 一个简单的SQL查询问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3754673/