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查询,只要他们没有“系统”的角色,它应该得到每个用户,这是正常的。但是,我面临的问题是,如果用户具有“系统”角色和另一个角色,则仍然会返回该用户。有任何想法吗?谢谢!
答案 0 :(得分:0)
您应该选择不在用户列表中的用户的值作为系统
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"
)