gpt4 book ai didi

SQL查询以获取不在组中的所有用户

转载 作者:行者123 更新时间:2023-12-05 00:41:11 25 4
gpt4 key购买 nike

我将用户和组表设置如下。

users
id int

groups
id int

users_groups
user_id int
group_id int

示例数据:
+---------+----------+
| user_id | group_id |
+---------+----------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 3 | 2 |
| 3 | 3 |
| 4 | 1 |
| 4 | 2 |
| 5 | 2 |
+---------+----------+

有没有办法选择不在给定组中的所有用户?我尝试加入 usersusers_groups表并添加一个,比如说, group_id != 1条件,但当他们在另一个组中时,我最终得到了用户,例如用户 [1, 3, 3, 4, 5]。

所以当我说我想要不在给定组中的用户时, group_id != 1在这种情况下,示例结果应该是用户 [3, 5]。

最佳答案

选择用户id的最简单方法不在 给定的组将使用 NOT IN :

SELECT id
FROM users
WHERE id NOT IN (SELECT user_id FROM users_groups WHERE group_id = 1)

其他常用的替代方法是 NOT EXISTS :
SELECT id
FROM users
WHERE NOT EXISTS (
SELECT NULL
FROM users_groups
WHERE group_id = 1
AND user_id = users.id
)

LEFT JOIN / IS NULL :
SELECT id
FROM users
LEFT JOIN users_groups
ON users.id = users_groups.user_id
AND users_groups.group_id = 1
WHERE users_groups.user_id IS NULL

关于SQL查询以获取不在组中的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3201398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com