SQL高级查询(二)——连接查询
连接查询(join on关键字)
注意: 可以多个表连接
一、 连接条件(等值连接和非等值连接)
1.等值连接
2.非等值连接
二、 自连接
注意: 由于自连接两张表的列名和表明都一模一样,所以需要给表起别名用来区 分前后两张表
三、 内连接(inner join …… on)
查询的结果只有两张表的连接条件对应值均不为null时的连接结果。
例如:
连接条件 t1.id=t2.id,只有t1.id,t2.id不为空时才能将对应数据配对成功,没配对的数据会被舍弃。
四、 外连接
左外连接
右外连接
应用场景:查找一个表中有,而另一个表中没有的数据。
外连接分为左外连接,右外连接,全连接。
左外连接就是左边的数据会全部保留(即使左边的连接条件值=null),但是由于null值无法比较,所以左外连接未配对成功的数据的右表为空。
右外连接,全连接依次类推。
注意 :mysql不支持全外连接。
通过外连接来查找其他表无记录的数据
这是外连接的常用场景
五、 交叉连接
返回两张表的所有笛卡尔乘积的结果,一般无意义。