左连接,但如果连接表包含条目则排除

时间:2013-10-09 13:48:51

标签: mysql sql subquery left-join inner-join

我知道标题似乎微不足道,但问题比初看起来要深一些。

我有以下3种表结构:

user:  id, name
group: id, name
group_members: id, idUser, idGroup

超级管理员有一个group,其id = 1。

我需要选择所有 NOT 的用户。然而,棘手的部分是他们订阅超级管理员组和其他组。我尝试了LEFT JOIN和JOIN,但它们包含在这种情况下。如果他们订阅了超级管理员组,我想从结果中排除他们,无论他们是否订阅了其他组。

2 个答案:

答案 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