今天我们用下面的表来学习全联结。其中,

学生表(student):用来记录学生的基本信息

成绩表(score):用来记录学生选修课程的成绩

图解SQL联结:全联结_SQL


1.什么是全联结?


全联结,是将左侧和右侧表中的数据全部取出来。下面图片中用文氏图画出了全联结,是红颜色的部分。

图解SQL联结:全联结_SQL_02

2.全联结是如何运行的?


下图是全联结的运行过程:


图解SQL联结:全联结_SQL_03


全连接查询结果返回左表和右表中的所有行。当某行和另一个表中有匹配的行时,进行合并。当某行和另一个表中没有匹配行时,另一个表中的值对应的用空值(Null)填充。


在图片中看到多了两行空值,分别是左联结结果和右联结结果中的空值行。


3.全联结sql语句怎么写?


select ...from 表1 as a full outer join 表2 as bon a.列名=b.列名


值得一提的是,有的数据库不支持全连接,这里了解下全连接的概念即可。