从具有相同结构的多个表中进行SELECT

时间:2016-10-31 12:05:10

标签: mysql

如果之前有人问过这个问题,我很抱歉,我在谷歌找不到任何问题。

我正在为我的问题寻找解决方案; 我有多个具有相同结构的报表(数据来自不同的来源,我不得不拆分表), 我需要执行一个SELECT语句,从所有这些表中获取所需的数据,但我也尝试从所述表的集合结果中应用GROUP BY

例如:当为每个表应用GROUP BY日期时,它将按日期对任何特定表进行分组,但是当将所有结果合并在一起时,我留下了多个分组表而不是单个结果必要的分组。

我知道如何为特定的表执行GROUP BY,但我不知道如何在不触及任何复杂的PHP脚本的情况下执行它。

我没有任何关于我所做的事情的例子,因为到目前为止我还没有想到任何想法。

PHP脚本也可以解决这个问题,但我更喜欢使用纯SQL。

谢谢。

1 个答案:

答案 0 :(得分:0)

通常使用UNION将多个表组合成一组数据,然后您可以将整个数据用作一组数据:

SELECT <Col1>,<Col2>,SUM(<Col3>) as Sum_Col_3
FROM(
    SELECT <Col1>,<Col2>,<Col3> FROM TableA 
    UNION ALL
    SELECT <Col1>,<Col2>,<Col3> FROM TableB
    UNION ALL
    SELECT <Col1>,<Col2>,<Col3> FROM TableC) t
GROUP BY <Col1>,<Col2>