📜  mariadb mysql 中的完全外连接(1)

📅  最后修改于: 2023-12-03 15:02:51.698000             🧑  作者: Mango

MariADB/MySQL 中的完全外连接

在MariADB/MySQL中,完全外连接(FULL OUTER JOIN)是一种连接两个表中所有行,即使两个表的行数不一致也可以连接。该连接类型使用FULL OUTER JOIN关键字实现,它将左表(表1)和右表(表2)的行全部包括在结果集中。如果在一个表中找不到匹配的行,则将NULL填充到结果集中。

完全外连接语法:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

下面是完全外连接的工作原理:假设我们有两个表格table1和table2,它们包含相同类型的两列数据。 在表格建立时,table1包含11行数据,而table2只包含8行数据。

用法示例:
SELECT table1.id, table1.name, table2.salary
FROM table1
FULL OUTER JOIN table2
ON table1.id = table2.id;

FULL OUTER JOIN示例

在这个示例中,我们使用了完全外连接来连接表1和表2。如果两个表中至少有一行匹配,则会根据匹配的行返回结果记录。否则,将返回一个NULL值。例如,在上图中,table2中的6号和8号记录未与table1中的任何记录匹配。在这种情况下,表格保留了左和右表中的所有行,并在未找到行匹配时返回NULL值。

总体来说,在MariADB/MySQL中,完全外连接在某些情况下很有用,但在大多数情况下,内连接或左外连接是更好的选择。

参考资料: MySQL full outer join