gpt4 book ai didi

MySql COUNT(*) 返回 1 而不是 0

转载 作者:可可西里 更新时间:2023-11-01 08:02:38 27 4
gpt4 key购买 nike

我有一个 sql 查询来获取每个组的用户数并按它们对所有组进行排序。但不幸的是,sql 认为 user_count 为 1,而实际上它必须为 0。如果用户数大于 0,则取正确的值。

这是我的 sql 查询:

SELECT G.id, COUNT(*) user_count
FROM groups G LEFT JOIN
users U
ON G.id = U.group_id
GROUP BY G.id
ORDER BY user_count

groups 表中,我在 id 字段中有组 ID,在 users 表中,我在字段中有用户及其组 ID group_id

我的 SQL 不太好,所以我可能犯了一些非常愚蠢的错误。如果您能提供帮助,请提前致谢。

最佳答案

COUNT(*) 计数。你想计算匹配数,所以从第二个表开始计算:

SELECT G.id, COUNT(u.group_id) as user_count
. . .

换句话说,LEFT JOIN 在没有匹配项时返回一行。对于 users 表中的所有列,该行都具有一个 NULL 值。

关于MySql COUNT(*) 返回 1 而不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48829343/

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