gpt4 book ai didi

mysql - 过滤后如何包含所有用户名

转载 作者:行者123 更新时间:2023-11-28 23:34:16 25 4
gpt4 key购买 nike

my tables

注意:p_date 应该是 dd-mm-yy 格式,但 excel 决定将其显示为 dd-mm

无论如何,对于我的查询,我想检索用户名和一个计数器,用于计算用户在特定月份发布消息的次数。

这是我使用的代码:

SELECT users.username, count(*) 
FROM publishdate JOIN users
ON publishdate.uid = users.uid
WHERE MONTH(STR_TO_DATE(p_date, '%Y-%m-%d')) = 11
GROUP BY users.username;

enter image description here

当我过滤 11 月时,我看到 ruby 在那个月发布了两次,但我如何将发布了 0 消息的所有用户都包含到结果中?

提前谢谢大家。

最佳答案

您必须在查询的左侧使用users 表并对publishdate 表执行LEFT JOIN:

SELECT users.username, count(publishdate.uid) 
FROM users
LEFT JOIN publishdate ON publishdate.uid = users.uid AND
MONTH(STR_TO_DATE(p_date, '%Y-%m-%d')) = 11
GROUP BY users.username;

注意谓词 MONTH(STR_TO_DATE(p_date, '%Y-%m-%d')) = 11 必须出现在 ON 子句,否则 LEFT JOIN 将等同于 INNER JOIN 操作。

关于mysql - 过滤后如何包含所有用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258683/

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