参考:

https://www.lintcode.com/course/19/learn/?chapterId=103&sectionId=667&extraParams=%7B%22moduleSource%22%3A%22lc-course%3A19%22%7D

规定要联结的所有表以及它们如何关联就可以了。

在设置关联条件时,为避免不同表被引用的列名相同,我们需要使用完全限定列名(用一个点分隔表名和列名),否则会返回错误。

用法如下:

`table1`.`common_field` = `table2`.`common_field`

在本例中,教师表的主键 id 为设置的关联条件为:

`teachers`.`id` = `courses`.`teacher_id` 

3、JOIN 连接子句

SQL JOIN 连接子句用于将数据库中两个或者两个以上表中的记录组合起来。其类型主要分为 INNER JOIN(内连接)、OUTER JOIN(外连接)、全连接(FULL JOIN)和交叉连接(CROSS JOIN),其中 OUTER JOIN 又可以细分为 LEFT JOIN(左连接)和 RIGHT JOIN(右连接)。

因此,我们主要使用的 JOIN 连接类型如下:

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行
  • CROSS JOIN:又称笛卡尔积,两个表数据一一对应,返回结果的行数等于两个表行数的乘积