繁体   English   中英

有关通过联合加入2表的SQL Server查询

[英]SQL Server query about joining 2 table with union

我有两个表T1T2 ,它们都包含列IDvalue

我需要通过IDT1T2加入T3

T3应包含IDT1ValueT2Value列。

主要要求是, T1T2 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM