gpt4 book ai didi

MySQL 加入缺失结果

转载 作者:行者123 更新时间:2023-11-29 06:39:03 26 4
gpt4 key购买 nike

我正在尝试选择所有用户并从加入的时间表中获取每个用户记录的小时数。但是,如果用户根本没有记录任何时间,我就不会在结果中返回他们的名字。我仍然想获得每个用户的姓名,即使他们没有在时间表中记录任何内容。

如果删除该行,我可以获得所有用户的结果:

AND (times.time_date BETWEEN '2014-03-01' AND '2014-03-31')

这是我的完整查询,我做错了什么?

SELECT users.user_id,
users.user_name,
SUM(times.time_used) as hours
FROM users
LEFT JOIN times on users.user_id = times.user_id
WHERE users.user_reminder = 1
AND users.status_id = 1
AND (times.time_date BETWEEN '2014-03-01' AND '2014-03-31')
GROUP BY users.user_id
ORDER BY users.user_name

最佳答案

AND 子句移到 ON() 子句中,在 WHERE 子句后使用 AND 过滤器将过滤掉整个结果集,因此如果任何用户的 status_id 为 1 且 user_reminder是一个但没有时间条目将被过滤,但是如果在你的 on 子句中使用 AND 将加入特定于条件的用户并且即使他们没有时间条目也会返回 uesrs

SELECT users.user_id,
users.user_name,
SUM(times.time_used) as hours
FROM users
LEFT JOIN times on (users.user_id = times.user_id
AND (times.time_date BETWEEN '2014-03-01' AND '2014-03-31') )
WHERE users.user_reminder = 1
AND users.status_id = 1
GROUP BY users.user_id
ORDER BY users.user_name

关于MySQL 加入缺失结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22709292/

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