Overview

Join通常将数据库两张表进行链接,Join的通常有两种模式:

  • inner join
  • (outer) join

其中outer可省略,其中外连接也分为:

  • left (outer) join
  • right (outer) join
  • full (outer) join

Practise

新建两张表Student和Class,其中Student有一个classid作为Class的外键,如下图所示:
image.png

image.png

首先测试普通的join(FULL JOIN)操作,是全外连接,即笛卡尔积。

  1. select Student.name,Class.classname from Student JOIN Class ;

之后是内链接INNER JOIN,其只会筛选出符合on条件的两边列表的数据,比如统计Student和Class共有classid的数据:

  1. select Student.name,Class.classname from Student INNER JOIN Class on Student.classid = Class.classid;

image.png
在之后是左外链接LEFT JOIN,其保证了左边的数据表的完整性,例如Student有Class中不存在的classid,其也会被显示:

  1. select Student.name,Class.classname from Student LEFT JOIN Class on Student.classid = Class.classid;

image.png
同样右外连接保证了RIGHT JOIN,同样保证了右边的数据表的完整性。

  1. select Student.name,Class.classname from Student RIGHT JOIN Class on Student.classid = Class.classid;

image.png