sql join 和 where 有什么区别
join关键字的作用是将多个表按照一定的条件连接起来,从而可以从多个表中获取数据。
推荐课程:MySQL教程。
加入后可以遵循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.这里以左连接为例。首先运行where添加条件-when t2.age ='22'
SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id where t2.age =' 22'
结果如下
左连接操作完成后过滤条件即可得到where条件
< p>2。运行时添加条件 - t2.age ='22'SELECT * from id_name t1 LEFT JOIN id_age t2 on t1.id = t2.id and t2.age =' 22'
结果如下
通过对left join之前的条件进行过滤,然后将两张表进行join即可得到on条件 p>
这里使用的是left join,例如inner join,由于其性质,两个条件得到的结果会是一样的,但是内部的流程还是不一样的
工作上早于where,首先根据on条件执行多表连接操作,生成一个临时表,然后按where过滤
哪个效率更高,on还是where?
如果是inner Join,则放在and where将产生相同的结果,但没有说哪个更高效、更快?如果有外连接(左或右),就会有区别,因为on先生效,并且提前过滤了一部分数据,where稍后生效。
To总结一下,感觉放在on上效率更高,因为是在where之前执行的。
先笛卡尔积,然后再过滤,如果join是inner,就继续往下走。如果join是左连接,则将on过滤掉的左主表中的数据加回;然后在where中进行过滤;
on不是最终的过滤,因为后面可能会加回left join,而where才是最终的过滤。
仅当使用outer join时(左、右),on 和 where 之间存在差异。如果使用内连接,则在公式中到处都是一样的,因为on后面跟着where,中间没有其他步骤。
以上就是SQL join和where的区别。感谢您的阅读!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果您想了解更多知识,请关注行业资讯频道!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > sql join 和 where 有什么区别