SQL高级查询(二)——连接查询

 连接查询(join on关键字)

 

 

SQL高级查询(二)——连接查询

SQL高级查询(二)——连接查询

注意: 可以多个表连接

 

一、 连接条件(等值连接和非等值连接)

1.等值连接

SQL高级查询(二)——连接查询

 

2.非等值连接

SQL高级查询(二)——连接查询

 

二、 自连接

SQL高级查询(二)——连接查询

注意: 由于自连接两张表的列名和表明都一模一样,所以需要给表起别名用来区 分前后两张表

 

三、 内连接(inner join …… on)

SQL高级查询(二)——连接查询

查询的结果只有两张表的连接条件对应值均不为null时的连接结果。

例如:

连接条件 t1.id=t2.id,只有t1.id,t2.id不为空时才能将对应数据配对成功,没配对的数据会被舍弃。

 

 

四、 外连接

左外连接

SQL高级查询(二)——连接查询

右外连接

SQL高级查询(二)——连接查询

 

应用场景:查找一个表中有,而另一个表中没有的数据。

外连接分为左外连接,右外连接,全连接。

左外连接就是左边的数据会全部保留(即使左边的连接条件值=null),但是由于null值无法比较,所以左外连接未配对成功的数据的右表为空。

右外连接,全连接依次类推。

注意 :mysql不支持全外连接。

通过外连接来查找其他表无记录的数据

SQL高级查询(二)——连接查询

这是外连接的常用场景

SQL高级查询(二)——连接查询

五、 交叉连接

返回两张表的所有笛卡尔乘积的结果,一般无意义。