将多个表组合成一个大表

时间:2016-01-26 19:48:49

标签: sql-server-2012

我想将相同格式(列)的多个表组合成一个大表,以便我可以对所有数据的并集运行查询。

例如:

表1:

Product       Spec
AProduct 1    ASpec 1
AProduct 2    ASpec 2

表2:

Product      Spec
BProdcut 1   BSpec 1
BProduct 2   BSpec 2

表3:

Product      Spec
CProduct 1   CSpec 1
CProduct 2   CSpec 2

想要一张大桌子展示:

Product      Spec
AProduct 1   ASpec 1
AProduct 2   ASpec 2
BProdcut 1   BSpec 1
BProduct 2   BSpec 2
CProduct 1   CSpec 1
CProduct 2   CSpec 2

2 个答案:

答案 0 :(得分:1)

使用union operator

TSQL示例:

select * from (
select Product, Spec
from Table1
union
select Product, Spec
from Table2
union
select Product, Spec
from Table3 ) as large_table

或者像往常一样创建视图并进行查询。 使用“union all”组合所有行,使用“union”组合唯一的行(即重复项将从结果集中删除)。

答案 1 :(得分:0)

创建一个新表

CREATE TABLE newtable LIKE table1;

从表1到3插入日期

INSERT INTO newtable SELECT * FROM table1;
INSERT INTO newtable SELECT * FROM table2;
INSERT INTO newtable SELECT * FROM table3;

现在您可以使用newtable