查询使用mysql查找特定数据

时间:2017-02-01 19:33:56

标签: mysql sql

假设我有一个包含id(主键),user-id(f oreign key )和角色(包含USER,ADMIN,SYSTEMADMIN等角色的表) )。用户可能具有多个角色。我想找到那些只有角色USER但没有其他权限的用户。我给出了一张类似表格的快照。我怎么能这样做。

Image of the table

1 个答案:

答案 0 :(得分:1)

您可以使用子选择来排除与用户不同的用户ID

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

或者您可以使用for count(不同的角色)

select userid from my_table
where roles = 'USER' 
having count( distinct roles) = 1
group by userid