mysql多表选择最近7天
我有3个表,其中包含一些有日期和数值的记录(这些表不能合并)。我想用表格中的信息制作一个条形图。条形图按天分组,应显示最近七天 之前我有两个表,并使用了以下查询方案:mysql多表选择最近7天,mysql,full-outer-join,Mysql,Full Outer Join,我有3个表,其中包含一些有日期和数值的记录(这些表不能合并)。我想用表格中的信息制作一个条形图。条形图按天分组,应显示最近七天 之前我有两个表,并使用了以下查询方案: SELECT t.credits1, t.credits2, t.date FROM ( ( SELECT t1.credits1, t2.credits2, t1
SELECT
t.credits1,
t.credits2,
t.date
FROM
(
(
SELECT
t1.credits1,
t2.credits2,
t1.date
FROM
(
SELECT
SUM(credits) AS credits1,
date
FROM
table1
WHERE
table1.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY
DATE(table1.date)
) t1
LEFT JOIN
(
SELECT
SUM(credits) AS credits2,
date
FROM
table2
WHERE
table2.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY
DATE(table2.date)
) t2
ON t1.date = t2.date
)
UNION
(
SELECT
t1.credits1,
t2.credits2,
t1.date
FROM
(
SELECT
SUM(credits) AS credits1,
date
FROM
table1
WHERE
table1.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY
DATE(table1.date)
) t1
RIGHT JOIN
(
SELECT
SUM(credits) AS credits2,
date
FROM
table2
WHERE
table2.date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
GROUP BY
DATE(table2.date)
) t2
ON t1.date = t2.date
)
) t GROUP BY
DATE(date)
(伪代码)
但是我怎么能用两张以上的桌子做到这一点呢?
是否有机会将过去7天的日期设置为基准,以便我每次获得7张记录
指出问题:如果一天内第一个表中没有记录,我将无法从其他表中获取当天的记录。我假设这三个表具有相似的模式?尝试使用UNION ALL将表连接在一起
SELECT ABB1.date, SUM(ABB1.credit) AS daily_total
FROM
(SELECT date, credits
FROM table1
UNION ALL
SELECT date, credits
FROM table1
UNION ALL
SELECT date, credits
FROM table2) AS ABB1
WHERE DATE >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)