Получить пересекающиеся строки на основе значения столбца - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть таблица в SQL Server. Вот как в настоящий момент хранятся данные в таблице:

table data

Я хочу получить все common menu_id , когда множественный role_id . Например: я хочу menu_id 1 , когда для role_id указаны 1 и 3, так как menu_id 1 является общим для всех указанных role_id. Я понятия не имею, какой запрос я должен использовать. Кто-нибудь может мне помочь?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

Вы, похоже, хотите menu_id s, которые имеют список 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

Здесь - это дБ <> скрипка.

1 голос
/ 03 апреля 2019

использовать group by с having

select menu_id from tablename
group by menu_id
having count(distinct role_id)>1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...