好的,我从线程MySql Single
Table的上一个答案中选择了过去7天,并包含空行
在这里,您可以做些什么来使日期选择动态化
select t1.attempt_date,coalesce(SUM(t1.attempt_count+t2.attempt_count), 0) AS attempt_countfrom( select DATE_FORMAT(a.Date,'%Y/%m/%d') as attempt_date, '0' as attempt_count from ( select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c ) a where a.Date BETWEEN NOW() - INTERVAL 7 DAY AND NOW())t1left join( SELECT DATE_FORMAT(attempt_date,'%Y/%m/%d') AS attempt_date, COUNT(*) AS attempt_count FROM users_attempts WHERe DATE_SUB(attempt_date, INTERVAL 1 DAY) > DATE_SUB(DATE(NOW()), INTERVAL 1 WEEK) GROUP BY DAY(attempt_date) DESC)t2on t2.attempt_date = t1.attempt_dategroup by DAY(t1.attempt_date)order by t1.attempt_date desc;
演示



