2017-02-01 2 views
0

Предположим, что у меня есть таблица, которая содержит идентификатор (первичный ключ), идентификатор пользователя (F oreign ключа) и роли (имеющие некоторые роли, как USER, ADMIN, SYSTEMADMIN). Пользователь может иметь несколько ролей. Я хочу, чтобы эти пользователи имели только роль ПОЛЬЗОВАТЕЛЯ, но не другие привилегии. Я даю снимок аналогичной таблицы. Как мне это сделать.запрос для поиска конкретных данных с использованием MySQL

Image of the table

ответ

1

Вы можете использовать подзапрос для исключения идентификатора пользователя, отличного от пользователя

select distinct userid from my_table 
where userid is not in (select userid from my_table where roles != 'USER') 
and roles ='USER'; 

или вы можете использовать имея для подсчета (различные роли)

select userid from my_table 
where roles = 'USER' 
having count(distinct roles) = 1 
group by userid 
Смежные вопросы