1、 当一个子查询是相关子查询的时候,会严重影响性能。SQL给我们提供了一种更简单的语法来同时查询多个表,即使用联接。
2、一次性查询不同的表里的不同列称之为表连接查询。
3、在多表连接查询的时候通过表名或者表别名去引用列名,这样做相当于明确告诉数据库引擎当前列来自于哪张表,能够略微提高性能。
4、表连接主要有3种形式:
1)内连接:
[inner] join Inner可有可无。 内联接是指使用比较运算符根据每个表共有的列的值匹配两个表中的行。
2)外连接:
2.1、左外连接: Left [outer] join Outer可用可不用.不管连接条件,直接将2表的所有数据查询出来,当查询的某张表的结果在另外一张表中如果根据连接条件找不到匹配的值时,则返回空值。
2.2、右外连接: Right [outer] join 和左连接差不多,只是换个方向而已。
2.3、全外连接:full [outer] join 不管连接条件,直接将2表的所有数据查询出来,当查询的某张表的结果在另外一张表中如果根据连接条件找不到匹配的值时,则返回空值。
3)交叉连接
cross join 交叉联接返回左表中的所有行,左表中的每一行与右表的所有行组合。交叉联接也称笛尔积。