我知道标题似乎微不足道,但问题比初看起来要深一些。
我有以下3种表结构:
user: id, name
group: id, name
group_members: id, idUser, idGroup
超级管理员有一个group
,其id = 1。
我需要选择所有 NOT 的用户。然而,棘手的部分是他们订阅超级管理员组和其他组。我尝试了LEFT JOIN和JOIN,但它们包含在这种情况下。如果他们订阅了超级管理员组,我想从结果中排除他们,无论他们是否订阅了其他组。
答案 0 :(得分:1)
SELECT * FROM user
WHERE id NOT IN
(SELECT idUser FROM group_members WHERE idGroup = 1)
答案 1 :(得分:1)
没有子查询
select idUSER from group_members
group by iduser
having sum(if(idgroup=1,1,0))=0