2013-10-09 161 views
0

我知道標題似乎微不足道,但問題比看起來乍一看更深一點。左連接,但不包括如果連接表包含條目

我有以下3表結構:

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

有對於具有ID = 1超級管理員一個group

我需要選擇所有不是這個組的一部分的用戶。然而,棘手的部分是當他們訂閱了超級管理員組和其他組。我嘗試了一個LEFT JOIN和JOIN,但是他們被包含在這種情況下。如果他們訂閱了超級管理員組,則我希望從結果中排除他們,而不管他們是否訂閱了其他組。

回答

1
SELECT * FROM user 
WHERE id NOT IN 
(SELECT idUser FROM group_members WHERE idGroup = 1) 
1

沒有一個子查詢

select idUSER from group_members 
group by iduser 
having sum(if(idgroup=1,1,0))=0