Overview
Join通常将数据库两张表进行链接,Join的通常有两种模式:
- inner join
- (outer) join
其中outer可省略,其中外连接也分为:
- left (outer) join
- right (outer) join
- full (outer) join
Practise
新建两张表Student和Class,其中Student有一个classid作为Class的外键,如下图所示:
首先测试普通的join(FULL JOIN
)操作,是全外连接,即笛卡尔积。
select Student.name,Class.classname from Student JOIN Class ;
之后是内链接INNER JOIN
,其只会筛选出符合on
条件的两边列表的数据,比如统计Student和Class共有classid的数据:
select Student.name,Class.classname from Student INNER JOIN Class on Student.classid = Class.classid;
在之后是左外链接LEFT JOIN
,其保证了左边的数据表的完整性,例如Student有Class中不存在的classid,其也会被显示:
select Student.name,Class.classname from Student LEFT JOIN Class on Student.classid = Class.classid;
同样右外连接保证了RIGHT JOIN
,同样保证了右边的数据表的完整性。
select Student.name,Class.classname from Student RIGHT JOIN Class on Student.classid = Class.classid;