我有两个表T1
和T2
,它们都包含列ID
和value
。
我需要通过T1
将T2
和T3
加入ID
。
T3
应包含列ID
,T1Value
和T2Value
。
主要要求是,ID
中的T1
和T2
可能未映射
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
是否可以在不使用数据透视表或临时表的情况下实现这一目标(理想情况下应该是单个可执行查询)?
谢谢。
答案 0 :(得分:1)
您可以使用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