我的SQL数据库中有3个表:users,groups和users_in_groups(N对N关系表)。
当用户请求其他用户的列表时,他只能获得与他的组相关联的联系人。为了处理它,我获取用户组的ID,并在具有此ID的组中查找其他用户。
但现在我需要添加与任何组无关的用户列表。我正在考虑的解决方案是通过添加NOT IN(来自users_in_groups的用户ID)来单独请求了解users_in_groups表中未列出的用户ID。
如果您希望用户不在任何组中,您可以使用not exists
:
select u.*
from users u
where not exists (select 1
from user_in_groups ug
where ug.user_id = u.user_id
);