SELECT distinct u.id, u.identifier, u.display_name, u.modified_time,
u.active, r.id, r.name
FROM user u
left join user_role_mapping urm on u.id = urm.user_id
left join role r on r.id = urm.role_id
where r.id IS NULL or r.name NOT IN ("System");
我有这个MySQL查询,只要每个用户不具有“系统”角色,它就应该可以使每个用户正常工作。但是,我面临的问题是,如果用户具有“系统”角色和另一个角色,则仍在返回该用户。有任何想法吗?谢谢!
最佳答案
您应该为不在系统用户列表中的用户选择值
select u.id, u.identifier, u.display_name, u.modified_time,
u.active, r.id, r.name
FROM user u
left join user_role_mapping urm on u.id = urm.user_id
left join role r on r.id = urm.role_id
where u.id not in (
select u.id
FROM user u
left join user_role_mapping urm on u.id = urm.user_id
left join role r on r.id = urm.role_id
where r.name = "System"
)
关于mysql - MySql:如果用户具有特定角色,则将其排除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45107125/