我在SQL Server中有一个表。这是表中当前存储数据的方式:
我想在提供多个role_id 时获得所有常用menu_id 。 例如:我想要 menu_id 1 ,当提供的role_id为1和3时,因为menu_id 1对于所有指定的role_id是通用的。我不知道我应该使用什么查询。谁能帮我吗?
谢谢!
答案 0 :(得分:2)
您似乎希望有menu_id
个值列表的role_id
个。这应该做您想要的:
select menu_id
from t
where role_id in (1, 3)
group by menu_id
having count(*) = 2; -- number of values in IN list
Here是db <>小提琴。
答案 1 :(得分:1)
将group by
与having
一起使用
select menu_id from tablename
group by menu_id
having count(distinct role_id)>1