簡體   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