
# 全外连接
#### 功能描述
全外连接（FULL OUTER JOIN）根据左表与右表的所有记录进行匹配，返回两表中的所有记录。对于没有匹配值的记录，结果集中相应列返回 NULL。
#### 语法格式
```
SELECT attr_expr_list FROM table_reference
  FULL OUTER JOIN table_reference ON join_condition;
```
#### 参数说明
| **参数**              | **说明**                                                                |
|:---|:---|
| **attr_expr_list**  | 查询列表达式列表，指定需要返回的列。                                                    |
| **table_reference** | 进行连接的表名或子查询。必须是已存在的表，否则会出错。                                           |
| **FULL OUTER JOIN** | 全外连接关键字，返回左表与右表的所有记录，没有匹配值的记录返回 NULL。FULL JOIN 是 FULL OUTER JOIN 的简写。 |
| **join_condition**  | 连接条件，通常为两表之间列的等值比较表达式。                                                |
| **ON**              | 指定连接条件的关键字。                                                           |
   
#### 注意事项
- 所要进行 JOIN 连接的表必须是已经存在的表，否则会出错。
- FULL JOIN 是 FULL OUTER JOIN 的简写形式，两者语义完全相同。
- 全外连接的结果集等于左外连接与右外连接的并集。
 
#### 示例
利用全外连接可以将两张表中的所有记录返回，没有匹配值的左表及右表记录将返回 NULL。
```
SELECT student_info.name, course_info.courseName FROM student_info FULL OUTER JOIN course_info ON student_info.courseId = course_info.courseId;
```
等价写法：
```
SELECT student_info.name, course_info.courseName FROM student_info FULL JOIN course_info ON student_info.courseId = course_info.courseId;
```
