[英]SQL Server query about joining 2 table with union
我有两个表T1
和T2
,它们都包含列ID
和value
。
我需要通过ID
将T1
和T2
加入T3
。
T3
应包含ID
, T1Value
和T2Value
列。
主要要求是, T1
和T2
ID
可能未映射
T1 :
ID VALUE
-----------
1 hi
2 hello
T2 :
ID VALUE
----------
2 kitty
3 dog
然后, T3
应该是
ID T1VALUE T2VALUE
----------------------
1 hi
2 hello kitty
3 dog
是否可以在不使用数据透视表或临时表的情况下实现此目标(理想情况下应为单个可执行查询)?
谢谢。
您可以使用FULL OUTER JOIN
SELECT ID = COALESCE(T1.ID, T2.ID),
T1VALUE = T1.VALUE,
T2VALUE = T2.VALUE
FROM T1
FULL OUTER JOIN T2
ON T1.ID = T2.ID
关于FULL OUTER JOIN
的例子很多。 只是搜索它
另一种方法是使用UNION ALL
SELECT T1.ID, T1VALUE = T1.VALUE, T2VALUE = NULL
FROM T1
UNION ALL
SELECT T2.ID, T1VALUE = NULL, T2VALUE = T2.VALUE
FROM T2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.