SQL RIGHT JOIN
SQL WHERE 

SQL FULL JOIN

在 SQL 中,FULL JOIN(全外连接)是一种表连接(JOIN)操作,它会返回左侧表(第一个表)和右侧表(第二个表)中的所有行,同时按照连接条件将它们结合起来。如果某个表中的行在另一个表中没有匹配的行,则对应位置会用 NULL 填充。


基本语法


SELECT 列列表
FROM 表1
FULL JOIN 表2
ON 表1.列名 = 表2.列名;

在这个语法中:


  • 表1 是左侧表,表2 是右侧表。

  • 列名 是用于连接两个表的列名。


举例说明:

如有2个表,teachers(教师信息表)和colleages(学院信息表)


teachers表

teacher_idteachar_namecolleage_id
1
张三
001
2李四002
3王五005


colleages表

colleage_idcolleage_name
001英语学院
002计算机学院
003物理学院


现在,我们可以使用 FULL JOIN 来获取教师id、姓名、所属所属学院名称:

SELECT teacher_id, teacher_name, colleage_name
FROM teachers
FULL JOIN colleages
ON teachers.colleage_id = colleages.colleage_id;


由于Mysql不支持FULL JOIN操作,可通过下面的方式来实现:

SELECT teacher_id, teacher_name, colleage_name
FROM teachers
LEFT JOIN colleages
ON teachers.colleage_id = colleages.colleage_id
UNION 
SELECT teacher_id, teacher_name, colleage_name
FROM teachers
RIGHT JOIN colleages
ON teachers.colleage_id = colleages.colleage_id;


将返回以下结果:

teacher_idteacher_namecolleage_name
1
张三英语学院
2李四计算机学院
3王五NULL
NULLNULL物理学院