假设我们有以下表 t1 和 t2:
t1:
id | column_1
-------------
1 | 1
2 | 2
t2:
id | column_2
-------------
2 | 2
3 | 3
我们想要找到以下结果:
id | column_1 | column_2
------------------------
1 | 1 |
2 | 2 | 2
3 | | 3
这基本上是右连接与左连接的并集。以下代码有效但感觉笨拙:
(
SELECT t1.id, t1.column_1, t2.column_2
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
)
UNION
(
SELECT t2.id, t1.column_1, t2.column_2
FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
)
是否有更好的方法来实现这一点?
最佳答案
select a.id, t1.column_1, t2.column_2
from (
select id from t1
union
select id from t2
) a
left outer join t1 on a.id = t1.id
left outer join t2 on a.id = t2.id
关于sql - MySQL:左连接与右连接的联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1440808/