gpt4 book ai didi

Mysql如何做这个查询

转载 作者:行者123 更新时间:2023-11-29 04:29:02 25 4
gpt4 key购买 nike

SELECT u.username, count(t.tid) as total
FROM tbl2 t
JOIN users u ON t.userid = u.userid
GROUP BY t.userid

上面的查询工作正常,它返回在 tbl2 表中至少有一个任务的每个用户的总任务数。

但我想做的是返回所有用户,即使用户在第二个 tbl2 表中没有任何关联的记录。对于没有任何记录的用户,我希望总数显示为 0,我该如何实现?

最佳答案

给出的其他答案的问题是您要选择所有没有关联记录的用户;使用 LEFT JOIN,users 表位于连接的错误(可为空)端。您可以将 LEFT JOIN 替换为 RIGHT JOIN,但我总觉得这种语法不直观。

标准答案是在使用 LEFT JOIN 时反转表的顺序:

SELECT u.username, count(t.tid) as total
FROM users u
LEFT JOIN tbl2 t ON t.userid = u.userid
GROUP BY u.username

请注意,更好的做法是(在某些 DBMS 中,这是必需的)对 SELECT 列表中的非聚合列进行分组,而不是对用户 ID 进行分组并选择用户名。

关于Mysql如何做这个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967161/

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