full join用法示例
时间: 2024-12-08 12:11:58 浏览: 23
full join(完全连接)是SQL中的一种连接操作,用于返回两个表中所有的记录,无论它们在另一个表中是否有匹配的记录。如果没有匹配的记录,则结果中的另一个表的列将包含NULL值。
下面是一个使用full join的示例:
假设我们有两个表:`students`(学生表)和`courses`(课程表)。`students`表包含学生的ID和姓名,`courses`表包含课程的ID和名称,以及选修该课程的学生的ID。
`students`表:
| student_id | student_name |
|------------|--------------|
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
`courses`表:
| course_id | course_name | student_id |
|-----------|-------------|------------|
| 101 | 数学 | 1 |
| 102 | 英语 | 2 |
| 103 | 物理 | 4 |
我们希望查询所有学生和他们选修的课程,如果没有选修课程的学生也显示出来,反之亦然。可以使用full join来实现:
```sql
SELECT
students.student_id,
students.student_name,
courses.course_id,
courses.course_name
FROM
students
FULL JOIN
courses
ON
students.student_id = courses.student_id;
```
查询结果:
| student_id | student_name | course_id | course_name |
|------------|--------------|-----------|-------------|
| 1 | 张三 | 101 | 数学 |
| 2 | 李四 | 102 | 英语 |
| 3 | 王五 | NULL | NULL |
| NULL | NULL | 103 | 物理 |
在这个结果中,张三和李四分别选修了数学和英语课程,王五没有选修任何课程,而物理课程的student_id为4的学生在students表中不存在,因此显示为NULL。
阅读全文