简体   繁体   English

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

[英]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 . 我有两个表T1T2 ,它们都包含列IDvalue

I need to join T1 and T2 into T3 by means of ID . 我需要通过IDT1T2加入T3

T3 should contain columns ID , T1Value , and T2Value . T3应包含IDT1ValueT2Value列。

The main requirement is, ID of T1 and T2 is possible not mapped 主要要求是, T1T2 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.

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