【发布时间】:2016-09-09 13:05:20
【问题描述】:
我有以下 sql 查询
SELECT DATE_FORMAT(date,'%d.%m. %y') as date, COUNT(idStat) as number
FROM stat
WHERE IdGame = ? AND date >= ? AND date <= ?
GROUP BY date
它返回日期和今天有多少人访问游戏,但是当今天没有行时如何返回0?
例如 15.12.1993 日在 db 中不存在,但用户选择的日期在 15.10.1950 和 12.15.2020 之间。
我想返回这个不存在的日期 15.12.1993 但计数为 0。 这甚至可能吗?
感谢您的帮助,
菲利普。
【问题讨论】:
-
您必须针对包含所有日期的表格发送
left join。但是你应该在你的程序逻辑中而不是在 SQL 中处理它 -
或者,如果您没有包含所有日期的表,您可以使用递归查询生成它们。
-
但是日期在同一个表中...在表中是日期列、城市列、IP地址列...
-
看看stackoverflow.com/questions/2157282/… LEFT JOIN会有所帮助。