一种方法使用聚合和having
:
select s.user_id
from settings s
where (key, value) in ( ('color', 'blue'), ('size', '5') )
group by s.user_id
having count(*) = 2;
假设没有重复的设置(如果是的话,则需要使用count(distinct)
)。
SQL一对多关系-如何根据多个属性来选择行?
一种方法使用聚合和having
:
select s.user_id
from settings s
where (key, value) in ( ('color', 'blue'), ('size', '5') )
group by s.user_id
having count(*) = 2;
假设没有重复的设置(如果是的话,则需要使用count(distinct)
)。