📅  最后修改于: 2023-12-03 15:35:08.033000             🧑  作者: Mango
在SQL中,全外连接(FULL OUTER JOIN)是一种结合两个查询之间共同列和不共同列的结果的方法。无论在哪个表中出现,如果该列在其中一个表中出现,它就在结果集中显示出来。如果该列在两个表中出现,则它在结果集中只显示一个。
SELECT column_names
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
考虑以下两个表:
Table1
| ID | Name | | -- | ---- | | 1 | John | | 2 | Alex | | 3 | Kate |
Table2
| ID | Age | | -- | --- | | 1 | 21 | | 3 | 25 | | 4 | 19 |
我们想要以ID为连接条件,将这两个表连接起来。因为Table2中的ID 2不存在于Table1中,而Table1中的ID 2不存在于Table2中,所以我们需要使用全外连接来包含所有ID。
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.ID = table2.ID;
结果为:
| ID | Name | Age | | -- | ---- | --- | | 1 | John | 21 | | 2 | Alex | NULL| | 3 | Kate | 25 | | 4 | NULL | 19 |
注意到表格中有一个NULL值。这是因为ID为2的行在Table2中不存在任何值,所以在连接时,在Age列中显示NULL。
全外连接是一种灵活的连接方式,可用于合并两个表中的共同和不共同列。使用FULL OUTER JOIN时需要注意,结果集中可能包含NULL值,因此需要进行相应的处理。