温馨提示:这篇文章已超过289天没有更新,请注意相关的内容是否还可用!
MySQL外连接是一种用于查询两个或多个表的连接方式。它允许我们检索出两个表中的所有数据,即使没有匹配的行也能显示出来。外连接分为左外连接、右外连接和全外连接。
左外连接(LEFT JOIN)是指返回左表中的所有行,以及与右表中的匹配行。如果右表中没有匹配行,则结果中右表的列将包含 NULL 值。左外连接的语法如下:
SELECT *
FROM 表1
LEFT JOIN 表2
ON 表1.列 = 表2.列;
右外连接(RIGHT JOIN)是指返回右表中的所有行,以及与左表中的匹配行。如果左表中没有匹配行,则结果中左表的列将包含 NULL 值。右外连接的语法如下:
SELECT *
FROM 表1
RIGHT JOIN 表2
ON 表1.列 = 表2.列;
全外连接(FULL JOIN)是指返回左表和右表中的所有行,如果没有匹配的行,则结果中对应的列将包含 NULL 值。全外连接的语法如下:
SELECT *
FROM 表1
FULL JOIN 表2
ON 表1.列 = 表2.列;
下面是一个示例,假设我们有两个表:学生表(students)和课程表(courses)。我们想要查询所有学生的选课情况,包括没有选课的学生。我们可以使用左外连接来实现:
SELECT students.name, courses.course_name
FROM students
LEFT JOIN courses
ON students.id = courses.student_id;
这条 SQL 语句将返回所有学生的姓名和他们选修的课程名。如果某个学生没有选课,则课程名列将显示为 NULL 值。