假设我们有以下表t1和t2:
t1:
id | column_1
-------------
1 | 1
2 | 2
t2:
id | column_2
-------------
2 | 2
3 | 3
Run Code Online (Sandbox Code Playgroud)
我们想找到以下结果:
id | column_1 | column_2
------------------------
1 | 1 |
2 | 2 | 2
3 | | 3
Run Code Online (Sandbox Code Playgroud)
这基本上是右连接与左连接的并集.以下代码有效但感觉笨拙:
(
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
)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9438 次 |
| 最近记录: |