SQL连接表具有空值

时间:2019-07-11 11:52:05

标签: sql

我有2张桌子

让我们说表1和表2

它们都有一个共享的值(id)

我正在寻找的是是否有任何功能可以基于该键将它们两者合并,但是如果table2具有更多元素,我希望table1的列为空,并且如果table1具有更多元素,则表2列为空

我尝试了很多不同的联接,但是大多数情况下,由于试图填充双方,所以最终会出现很多重复的值。

尝试了完全外部联接,完全联接等

Something like this

2 个答案:

答案 0 :(得分:1)

您正在寻找full join

select t1.*, t2.*
from t1 full join
     t2
     on t1.id = t2.id;

答案 1 :(得分:0)

以上来自戈登的代码是正确的。但是,由于您尚未指定数据库及其版本,因此我将发布MySQL的备用版本,该版本也适用于其他数据库。

无重复:

SELECT * FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id
UNION
SELECT * FROM Table1
RIGHT JOIN Table2 ON Table1.id = Table2.id

有重复项:

SELECT * FROM Table1
LEFT JOIN Table2 ON Table1.id = Table2.id
UNION ALL
SELECT * FROM Table1
RIGHT JOIN Table2 ON Table1.id = Table2.id