双外连接

时间:2017-12-21 01:42:00

标签: sql sql-server

我的表A看起来像这样

ID     AValue
----------------------
3      Tom
5      John
9      Mike

和表B看起来像这样

ID     BValue
----------------------
2      Nancy
3      Maria
9      Clara
10     Sophia

我正在尝试加入两个表来获得此结果

ID      AValue         BValue
------------------------------
2       <NULL>         Nancy
3       Tom            Maria
5       John           <NULL>
9       Mike           Clara   
10      <NULL>         Sophia

如果我尝试离开外连接,我会错过A中没有匹配的记录 如果我尝试正确的外连接,我会错过B中没有匹配的记录

我可以使用的任何其他方式吗?

1 个答案:

答案 0 :(得分:3)

您需要的是FULL OUTER JOIN

SELECT ID = coalesce(a.ID, b.ID), AValue, BVlaue
FROM   TalbleA a FULL OUTER JOIN TableB b
       ON a.ID = b.ID