1.表连接简介
表连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。表连接共有三种类型,内连接、外连接(左外连接、右外连接和全连接)以及自连接。

2.内连接

只连接匹配的行。

6.表连接_内连接

select a.field, b.field 
from tableName1 as a inner join tableNam2 as b
on a.field = b.field

如下图所示,查询学生的学科成绩。

6.表连接_自连接_02

3.左外连接

包含左表的全部行(不管右表是否存在与之匹配的行),以及右表中全部匹配的行。

6.表连接_自连接_03

select a.field, b.field 
from tableName1 as a left join tableName2 as b
on a.field = b.field

如下图所示,查询学生的学科成绩。

6.表连接_自连接_04

4.右外连接

包含右表的全部行(不管左表是否存在与之匹配的行),以及左表中全部匹配的行。

6.表连接_内连接_05

select a.field, b.field 
from tableName1 as a right join tableName2 as b
on a.field = b.field

如下图所示,查询学生的学科成绩。

6.表连接_内连接_06

5.全连接(MySQL中不支持)

包含左右两个表的全部行,不管在另一个表中是否存在与之匹配的行。

6.表连接_内连接_07

select a.field, b.field 
from tableName1 as a full outer join tableName2 as b
on a.field = b.field

6.自连接
自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品分类表等。

select tableName1.field, tableName2.field 
from tableName1, tableName2
where tableName1.field = tableName2.field;

如下图所示,查询学生的学科成绩。

6.表连接_自连接_08