gpt4 book ai didi

mysql - 检查一个表中的 ID 是否存在于另一个表中,如果存在,有多少次

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

假设我有两个表

表a

some_ID
1
2
3
4

表b

some_ID
1
2
1
4

现在我想收到的是像这样的表格

id 数量

1 | 2
2 | 1

我尝试了以下查询:

SELECT COUNT(a.some_id) as id  
FROM Table_a
INNER JOIN Table_b
ON Table_a.some_id = Table.b.some_id

但这只返回了两个表中有多少个 id 行。
有帮助吗?

最佳答案

如果你想要零计数:

SELECT a.some_id AS id, count(b.some_id) as amount
FROM a LEFT JOIN b ON a.some_id = b.some_id
GROUP BY a.some_id

结果:

id | amount  
1 | 2
2 | 1
3 | 0
4 | 1

如果不是:

SELECT a.some_id AS id, count(*) as amount
FROM a INNER JOIN b ON a.some_id = b.some_id
GROUP BY a.some_id

结果:

id | amount  
1 | 2
2 | 1
4 | 1

区别在于连接类型。一旦离开外部连接。然后内连接。请注意,在第一种情况下,使用 count(b.some_id) 进行计数很重要。使用 count(*) 时,缺少 b 条目的行将被计​​为 1。count(*) 计算行数。 count(expression) 计算非空值。

关于mysql - 检查一个表中的 ID 是否存在于另一个表中,如果存在,有多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48372844/

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