Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询不返回前几个月的数据,如果为空,则返回零_Mysql - Fatal编程技术网

Mysql 查询不返回前几个月的数据,如果为空,则返回零

Mysql 查询不返回前几个月的数据,如果为空,则返回零,mysql,Mysql,查询返回前几个月的所有数据,如果当时没有数据,则必须返回零。相反,它只选择设置数据的行 |---------------------|---------------------| | id | added_on | |---------------------|---------------------| | 1 | 2020-02-20 20:00:00 | | 2

查询返回前几个月的所有数据,如果当时没有数据,则必须返回零。相反,它只选择设置数据的行

|---------------------|---------------------|
|          id         |     added_on        |
|---------------------|---------------------|
|          1          | 2020-02-20 20:00:00 |
|          2          | 2020-01-20 20:00:00 |
|          3          | 2019-12-20 20:00:00 |
|          4          | 2020-03-01 20:00:00 |
|---------------------|---------------------|
我提出的问题是:

SELECT
COALESCE(COUNT(id)) AS reg_users,
DATE_FORMAT(added_on, "%Y %b") AS reg_date
FROM users 
WHERE added_on
BETWEEN CURDATE() - INTERVAL 12 MONTH AND CURDATE() 
GROUP BY YEAR(added_on), MONTH(added_on)
ORDER BY YEAR(added_on) DESC, MONTH(added_on) DESC;
我如何重构上面的代码,以便在没有注册的情况下,它可以显示相应月份的零注册

输出应为:

|---------------------|---------------------|
|       reg_users     |       reg_date      |
|---------------------|---------------------|
|          1          | 2020 March          |
|          1          | 2020 February       |
|          1          | 2020 January        |
|          1          | 2019 December       |
|          0          | 2019 November       |
|          0          | 2019 October        |
|          0          | 2019 September      |
|          0          | 2019 August         |
|          0          | 2019 July           |
|          0          | 2019 June           |
|          0          | 2019 May            |
|          0          | 2019 April          |
|---------------------|---------------------|
但是输出是:

|---------------------|---------------------|
|       reg_users     |       reg_date      |
|---------------------|---------------------|
|          1          | 2020 March          |
|          1          | 2020 February       |
|          1          | 2020 January        |
|          1          | 2019 December       |

虽然我认为在应用程序代码中处理数据显示的问题通常是最好的,但您可能会考虑沿着这些问题来改进您的问题:您必须生成日期列表并加入您的数据。什么是“日期列表”?什么意思?我只想让代码显示没有注册用户的月份,计数为零。“注册用户”。我想你需要这个:“获取两个日期之间的日期列表”