gpt4 book ai didi

MYSQL - 从一个表中查找另一个表中不存在的记录

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:00 25 4
gpt4 key购买 nike

我有以下两个 SQL 表(在 MySQL 中):


用户
|编号 |姓名 |
|----|------|
| 1 |卢克 |
| 2 |标记 |
| 3 |露西 |
| 4 |一击 |

用户类别
|用户 ID |类别编号 |
|--------|------------|
| 1 | 5 |
| 1 | 6 |
| 2 | 5 |
| 2 | 7 |
| 3 | 5 |

我想要属于用户类别的用户,但如果类别 ID 为 6,则不需要。

在这种情况下,马克和露西是因为卢克也在类别 6 中,而比夫没有类别。

有没有一种方法可以不用子查询,只在一个查询中完成?

最佳答案

您可以group by user_id 并消除至少有一个 category_id 为 6 的行。

select uc.user_id,u.name
from user_category uc
join users u on uc.user_id = u.id
group by uc.user_id,u.name
having sum(case when category_id = 6 then 1 else 0 end) = 0

关于MYSQL - 从一个表中查找另一个表中不存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36868710/

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