如何在mysql中创建主表

时间:2019-01-19 13:24:41

标签: mysql

我有6个表(A,B,C,D,E,F),所有表都具有以下列列表:

Date Price City Country Pin

让我们说表A有这样几行:

Date       Price City Country Pin
19-01-2019 200   Pune India   411010

让我们说表B几乎没有这样的行:

Date       Price City   Country Pin
19-01-2019 300   Mumbai India   411010

让我们说表C像这样几行:

Date       Price City     Country Pin
19-01-2019 50    Kolhapur India   411010

让我们说表D有这样几行:

Date       Price City   Country Pin
19-01-2019 200   Satara India   411010

让我们说表E有这样几行:

Date       Price City     Country Pin
19-01-2019 20    Khandala India   411010

让我们说表F几乎没有这样的行:

Date       Price City     Country Pin
19-01-2019 10    Lonavala India   411010

我想创建一个表,例如所有这些表中包含日期和价格的主表。列价格的名称应为表的名称。

预期输出:

Date       A   B   C  D   E   F
19-01-201  200 300 50 200 20  10

如何实现?

1 个答案:

答案 0 :(得分:0)

您可以使用union all合并所有表,并为每个表保留一列:

select date, sum(a) a, sum(b) b, sum(c) c, sum(d) d, sum(e) e
from (
        select date, price a, null b, null c, null d, null e
        from a
        union all 
        select date, null, price, null, null, null
        from b
        union all 
        select date, null, null, price, null, null
        from c
        union all 
        select date, null, null, null, price, null
        from d
        union all 
        select date, null, null, null, null, price
        from e) as x
group by date;

如果对此结果感到满意,则可以通过在前面的select查询之前添加以下内容来为其创建表:

create table master(Date date, Price int) as