首页 文章 SQL中join操作后面的on与where的区别

SQL中join操作后面的on与where的区别

来源:https://blog.csdn.net/qq_41973536/article/details/81081024  发布时间:2019-07-12 10:00:20 作者:Soul-Yang 阅读量:725
join关键字的作用是将多个表按一定的条件联合起来,从而可以实现从多个表中获取数据

在join后面可以接on条件和where条件,在这里我主要就是说这两者之间的差别

建立两张简单的用来测试的表并添加数据,如下所示,一张表名为id_name,另一张表名为id_age





首先看看不添加条件——t2.age ='22'时的结果

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id
得到



1、在这里以left join为例,首先运行where加条件——t2.age ='22'时

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id where t2.age ='22'
得到结果如下



可以得到where条件是在left join操作完成后所进行的条件筛选

2、当运行on加条件——t2.age ='22'时

SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id and t2.age ='22'
得到结果如下



可得到on条件是在left join之前先进行条件筛选,而后才对两个表格join操作

在这里是以left join为例,对于inner join来说由于其性质,这两种条件得到的结果会是一样,但中间内部过程还是有差异的

on比where起作用更早,,先根据on条件进行多表的连接操作,生成一个临时表再通过where来筛选
  
留言
https://blog.key9.cn/
用户登录
您还没有写任何评论内容!
您已经评论过了!
只能赞一次哦!
您已经收藏啦!