FULL OUTER JOIN 是 SQL 中的一种连接操作,它返回左表(LEFT TABLE)和右表(RIGHT TABLE)中所有匹配的行,以及两个表中不匹配的行。如果某一边没有匹配,那么结果中该边的字段将包含 NULL 值。
SQL FULL OUTER JOIN 语法
SELECT column_names
FROM table1
FULL OUTER JOIN table2
ON table1.common_field = table2.common_field;
column_names是你想要从两个表中选择的列名。table1和table2是你想要连接的两个表。common_field是两个表中用于匹配的共同字段。
代码示例
假设我们有两个表:employees 和 departments。
employees 表:
+----+----------+
| id | name |
+----+----------+
| 1 | John |
| 2 | Jane |
| 3 | Mike |
+----+----------+
departments 表:
+----+------------+
| id | department |
+----+------------+
| 1 | Sales |
| 2 | Marketing |
| 4 | IT |
+----+------------+
现在,我们想要找出 employees 表和 departments 表中所有的 id,包括那些在其中一个表中存在而在另一个表中不存在的 id。
SELECT employees.id, employees.name, departments.department
FROM employees
FULL OUTER JOIN departments
ON employees.id = departments.id;
这个查询的结果将是:
+----+----------+------------+
| id | name | department |
+----+----------+------------+
| 1 | John | Sales |
| 2 | Jane | Marketing |
| 3 | Mike | NULL |
| 4 | NULL | IT |
+----+----------+------------+