on和where的执行顺序
请问老师 on和where谁先执行 还是一起执行
这个ON 后面的条件其实可以一起写到后面的where中
运行结果也是正确的
我想问一下 这两种写法的执行效率一样吗
11
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小班
2021-06-30 11:12:58
同学你好,1、同学可以这样理解on与where:
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。比如:在使用left jion时,on和where条件的区别如下:
1)、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2)、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
所以是on先执行,然后where再执行。
2、如上所示,可知这两条sql语句执行效率不同,每在where中增加一个条件,条件判断多一层,相应的执行效率就会慢一些。
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
java工程师2020版
- 参与学习 人
- 提交作业 9400 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星