6.表连接
原创
©著作权归作者所有:来自51CTO博客作者wx63560c7d74933的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.表连接简介
表连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。表连接共有三种类型,内连接、外连接(左外连接、右外连接和全连接)以及自连接。
2.内连接
只连接匹配的行。
select a.field, b.field
from tableName1 as a inner join tableNam2 as b
on a.field = b.field
如下图所示,查询学生的学科成绩。
3.左外连接
包含左表的全部行(不管右表是否存在与之匹配的行),以及右表中全部匹配的行。
select a.field, b.field
from tableName1 as a left join tableName2 as b
on a.field = b.field
如下图所示,查询学生的学科成绩。
4.右外连接
包含右表的全部行(不管左表是否存在与之匹配的行),以及左表中全部匹配的行。
select a.field, b.field
from tableName1 as a right join tableName2 as b
on a.field = b.field
如下图所示,查询学生的学科成绩。
5.全连接(MySQL中不支持)
包含左右两个表的全部行,不管在另一个表中是否存在与之匹配的行。
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;
如下图所示,查询学生的学科成绩。