首页 > 解决方案 > 如何在 Microsoft SQL Server 中合并这 3 个表

问题描述

我有三张桌子:

表格1:

pk  c1 
-------
1   1
2   1 
3   1

表2:

   pk   c2 
  ---------
    3   1
    4   1 
    5   1

表3:

   pk   c3 
  ---------
    6   1
    7   1 
    8   1

我将如何附加或联合这三个表看起来像这个表?

    pk  c1  c2 c3
   ---------------
    1   1   0   0
    2   1   0   0
    3   1   0   0
    4   0   1   0 
    5   0   1   0 
    6   0   1   0 
    7   0   0   1
    8   0   0   1 
    9   0   0   1

当我现在使用 union 语句时,SQL Server 会吐出 2 列。

select * from #table1 
union 
select * from #table2
union
select * from #table3

标签: sqlsql-server

解决方案


只需为不在每个表中的列提供 0 值:

select pk, c1, 0 as c2, 0 as c3
from t1
union all
select pk, 0 as c1, c2, 0 as c3
from t1
union all
select pk, 0 as c1, 0 as c2, c3
from t1;

推荐阅读