gpt4 book ai didi

MySQL 计数在同一个表中,包括零计数值

转载 作者:IT王子 更新时间:2023-10-28 23:47:37 25 4
gpt4 key购买 nike

我有这个包含数据的表结构:

INSERT INTO `test` (`id`, `email`, `id_user_ref`, `name`) VALUES
(1, 'email@gmail.com', NULL, 'Mike'),
(2, 'email2@gmail.com', '1', 'Jhonny'),
(3, 'email3@gmail.com', '1', 'Michael'),
(4, 'email4@gmail.com', '2', 'Jorhe'),
(5, 'email5@gmail.com', '3', 'Mia');

我需要使用此查询计算所有用户的 id_user_ref:

SELECT id, COUNT(name) AS refNr FROM test GROUP BY id_user_ref
HAVING id_user_ref IS NOT NULL;

这可行,但问题是即使计数结果为 0,我也需要显示所有结果。

我在同一张表上尝试了几次左连接,但都没有成功。

输出应该是:

id  refNr
1 2
2 1
3 1
4 0
5 0

最佳答案

试试这个:

SELECT 
t1.id,
IFNULL(COUNT(t2.name), 0) AS refNr
FROM test AS t1
LEFT JOIN test AS t2 ON t1.id = t2.id_user_ref
GROUP BY t1.id;

SQL Fiddle DEmo

这会给你:

| ID | REFNR |
--------------
| 1 | 2 |
| 2 | 1 |
| 3 | 1 |
| 4 | 0 |
| 5 | 0 |

关于MySQL 计数在同一个表中,包括零计数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15758201/

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