mysql只在用户没有

uhry853o  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(345)

我的用户组系统有一个包含以下字段的表:user\u id-group\u id
所以一个用户可以有多个组,每行一个。
我要做的是,拉取组id为“6”的记录,而不是拉取值为“9”的组id行。
我试过这个:

SELECT u.`username` FROM `users` u INNER JOIN `user_group_membership` g ON u.user_id = g.user_id WHERE g.group_id != 9 AND g.group_id = 6 ORDER BY u.`username` ASC

但是,这不起作用,它仍然会吸引组id=9的用户。

ryevplcw

ryevplcw1#

据我所知,您需要检索组6中的用户,而不是组9中的用户
所以你可以试试这个方法

SELECT u.`username` 
FROM `users` u 
INNER JOIN `user_group_membership` g6 ON u.user_id = g6.user_id and g6.group_id = 6 
LEFT  JOIN `user_group_membership` g9 ON u.user_id = g9.user_id and g9.group_id = 9 
WHERE g9.group_id is null
ORDER BY u.`username` ASC

您的sql中存在问题,因为此条件将返回组6中的所有用户,无论他是否在组9中

g.group_id != 9 AND g.group_id = 6

你需要修改你的问题以便更清楚

相关问题