Sql server SQL Server关于将2个表与union联接的查询
我有两个表Sql server SQL Server关于将2个表与union联接的查询,sql-server,Sql Server,我有两个表T1和T2,它们都包含一列ID和value 我需要通过ID将T1和T2加入T3 T3应包含ID、T1Value和T2Value列 主要要求是,T1和T2的ID可能未映射 T1: ID VALUE ----------- 1 hi 2 hello ID VALUE ---------- 2 kitty 3 dog T2: ID VALUE ----------- 1 hi 2 hello ID VALUE ---------- 2
T1
和T2
,它们都包含一列ID
和value
我需要通过ID
将T1
和T2
加入T3
T3
应包含ID
、T1Value
和T2Value
列
主要要求是,T1
和T2
的ID
可能未映射
T1:
ID VALUE
-----------
1 hi
2 hello
ID VALUE
----------
2 kitty
3 dog
T2:
ID VALUE
-----------
1 hi
2 hello
ID VALUE
----------
2 kitty
3 dog
然后,T3
应该是
ID T1VALUE T2VALUE
----------------------
1 hi
2 hello kitty
3 dog
不使用透视表或临时表(理想情况下应该是单个可执行查询)是否可以实现这一点
谢谢。您可以使用
完全外部联接
SELECT ID = COALESCE(T1.ID, T2.ID),
T1VALUE = T1.VALUE,
T2VALUE = T2.VALUE
FROM T1
FULL OUTER JOIN T2
ON T1.ID = T2.ID
关于完全外部联接
有很多例子。只要搜索一下就可以了
另一种方法是使用UNION ALL
SELECT T1.ID, T1VALUE = T1.VALUE, T2VALUE = NULL
FROM T1
UNION ALL
SELECT T2.ID, T1VALUE = NULL, T2VALUE = T2.VALUE
FROM T2