我试图通过使用这些简单的表来理解完全外连接
t1
-----------
a | b
===========
1 | 2
-----------
t2
------------
b | c
===========
2 | 3
------------
t3
-------------
a | c
=============
4 | 5
-------------
To understand select * from t1 natural full outer join (t2 natural full outer join t3);
我先试了select * from t2 natural full outer join t3
我将其称为result
-----------------
a | b | c
=================
| 2 | 3
----------------
4 | | 5
------------------
然后我试了
从t1自然全外连接(结果)中选择*
t1 result
----------- -----------------
a | b a | b | c
=========== =================
1 | 2 | 2 | 3
----------- ----------------
4 | | 5
------------------
不应该是
--------------------------
a | b | c
===========================
1 | 2 | 3
-------------------------
4 | | 5
我不太明白sql查询如何提供
a | b | c
---+---+---
4 | | 5
| 2 | 3
1 | 2 |
答案 0 :(得分:1)
您可以使用UNION ALL
(指定 ALL以保留重复项)来执行此操作。
SELECT a, b, NULL as c FROM t1
UNION ALL
SELECT NULL as a, b, c FROM t2
UNION ALL
SELECT a, NULL as b, c FROM t3