У меня есть таблица в SQL Server. Вот как в настоящий момент хранятся данные в таблице:
Я хочу получить все common menu_id , когда множественный role_id . Например: я хочу menu_id 1 , когда для role_id указаны 1 и 3, так как menu_id 1 является общим для всех указанных role_id. Я понятия не имею, какой запрос я должен использовать. Кто-нибудь может мне помочь?
Заранее спасибо!
Вы, похоже, хотите menu_id s, которые имеют список role_id значений.Это должно делать то, что вы хотите:
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
Здесь - это дБ <> скрипка.
использовать group by с having
group by
having
select menu_id from tablename group by menu_id having count(distinct role_id)>1