📅  最后修改于: 2023-12-03 15:05:18.685000             🧑  作者: Mango
SQL 外连接是一种在两个或多个表之间建立连接的方式,它允许查询返回左表中符合查询条件的所有行,以及右表中与左表中的行相匹配的行。当左表中没有匹配的行时,右表会返回 NULL 值。
如果需要在两个或多个表之间建立连接,可以使用内连接或外连接。内连接只返回两个表中都符合查询条件的行,而外连接返回符合条件的所有行,包括在一个表中没有匹配的行。
外连接分为左外连接、右外连接和完全外连接。
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.col1 = table2.col1;
SELECT *
FROM table1
RIGHT OUTER JOIN table2
ON table1.col1 = table2.col1;
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.col1 = table2.col1;
假设有两个表:students 和 scores,其中 students 表保存了学生的姓名和学号信息,scores 表保存了学生的成绩信息。我们需要查询所有学生的姓名和成绩,如果一个学生没有成绩,则显示 NULL 值。
SELECT students.name, scores.score
FROM students
LEFT OUTER JOIN scores
ON students.id = scores.student_id;
此查询将返回所有学生的姓名和成绩,如果一个学生没有成绩,则成绩列将显示 NULL 值。
# 结果
| name | score |
|---------|-------|
| Alice | 90 |
| Bob | NULL |
| Charlie | 85 |
| David | 92 |