[英]SQL Server query about joining 2 table with union
I have two tables T1
and T2
, both of them contain a column ID
and value
. 我有两个表
T1
和T2
,它们都包含列ID
和value
。
I need to join T1
and T2
into T3
by means of ID
. 我需要通过
ID
将T1
和T2
加入T3
。
T3
should contain columns ID
, T1Value
, and T2Value
. T3
应包含ID
, T1Value
和T2Value
列。
The main requirement is, ID
of T1
and T2
is possible not mapped 主要要求是,
T1
和T2
ID
可能未映射
T1 : T1 :
ID VALUE
-----------
1 hi
2 hello
T2 : T2 :
ID VALUE
----------
2 kitty
3 dog
Then, T3
should be 然后,
T3
应该是
ID T1VALUE T2VALUE
----------------------
1 hi
2 hello kitty
3 dog
Is it possible to achieve this without using pivot table, or temp table (ideally should be a single executable query)? 是否可以在不使用数据透视表或临时表的情况下实现此目标(理想情况下应为单个可执行查询)?
Thanks. 谢谢。
You can use FULL OUTER JOIN
您可以使用
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
There are lots of example on FULL OUTER JOIN
. 关于
FULL OUTER JOIN
的例子很多。 just search for it 只是搜索它
Another way is to use UNION ALL
另一种方法是使用
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.