我想从数据库中选择所有带有结尾的电子邮件的用户,@gmail.com
这些电子邮件尚未包含在具有groupID
4的组中。
问题是我的user_to_group
表看起来像这样:
userID | groupID
--------------------
1 | 5
1 | 4
1 | 3
2 | 3
2 | 6
使用groupID
4的用户被排除在外,但由于它们也属于其他组,因此无论如何都将选择它们。在此示例中,我只需要带userID
2的用户。
是否可以排除第4组中的用户,而与其他组无关?
SELECT * FROM wcf13_user user_table
RIGHT JOIN wcf13_user_to_group ON (wcf13_user_to_group.userID = user_table.userID && groupID != 4 )
WHERE user_table.email LIKE "%@gmail.com"
是的,您可以使用EXISTS
子查询来做到这一点:
SELECT *
FROM wcf13_user user_table u
WHERE user_table.email LIKE "%@gmail.com" -- Has a gmail account
AND NOT EXISTS ( -- Is not a member of group #4
SELECT *
FROM wcf13_user_to_group g
WHERE u.userID=g.userID AND groupID = 4
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句