-常用SQL - 查询指定日期区间内的数据,无数据记录的日期数据填充0
SELECT a.curr_date AS date, IFNULL(b.data,0) AS data
FROM (
SELECT date_sub(curdate(), interval 6 day) AS curr_date
UNION ALL
SELECT date_sub(curdate(), interval 5 day) AS curr_date
UNION ALL
SELECT date_sub(curdate(), interval 4 day) AS curr_date
UNION ALL
SELECT date_sub(curdate(), interval 3 day) AS curr_date
UNION ALL
SELECT date_sub(curdate(), interval 2 day) AS curr_date
UNION ALL
SELECT date_sub(curdate(), interval 1 day) AS curr_date
UNION ALL
SELECT curdate() as curr_date
)a LEFT JOIN (
SELECT createtime, data
FROM `datatable`
WHERE createtime BETWEEN DATE_SUB(CURRENT_DATE(),INTERVAL
1 WEEK) AND
CURRENT_DATE()
ORDER BY createtime
) b ON a.curr_date = date