Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 sql显示计数查询中的所有日期_Mysql - Fatal编程技术网

Mysql sql显示计数查询中的所有日期

Mysql sql显示计数查询中的所有日期,mysql,Mysql,我有一个关于mysql查询的问题。 我想数一数每天的记录数。 这是可行的,但我也希望看到计数为0的日期。 总计为0的日期不在结果集中。 我该怎么做? 这是我当前的查询: SELECT COUNT(id) AS total_per_day, DATE_FORMAT(reg_date, "%Y-%m-%d") as my_date FROM my_table GROUP BY my_date 提前感谢您的回复。尝试自我加入: SELECT COUNT(t.id) AS total_per_da

我有一个关于mysql查询的问题。 我想数一数每天的记录数。 这是可行的,但我也希望看到计数为0的日期。 总计为0的日期不在结果集中。 我该怎么做? 这是我当前的查询:

SELECT COUNT(id) AS total_per_day, 
DATE_FORMAT(reg_date, "%Y-%m-%d") as my_date 
FROM my_table GROUP BY my_date
提前感谢您的回复。

尝试自我加入:

SELECT COUNT(t.id) AS total_per_day, DATE_FORMAT(t.reg_date, "%Y-%m-%d") as my_date 
FROM my_table t left outher join my_table t2 on t.id=t2.id GROUP BY t.my_date
请尝试此查询-

-- Create this temp. table firstly!
-- CREATE TABLE days(d int);
-- INSERT INTO days(d) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);

SELECT t.day, COUNT(mt.id) total_per_day FROM (
  SELECT
    min_date + INTERVAL t1.d + t2.d * 10 DAY day,
    min_date,
    max_date
  FROM days t1, days t2,
    (SELECT MIN(DATE(reg_date)) min_date, MAX(DATE(reg_date)) max_date FROM my_table) t3
  HAVING day BETWEEN min_date AND max_date) t
  LEFT JOIN my_table mt
    ON t.day = DATE(mt.reg_date)
GROUP BY t.day
看看这篇文章: