多表join时条件写在where和on的区别
在开发过程中经常遇到这种情况:多表关联join时,到底限制的条件是写在where后面效率高还是写在on后面,又或者是先对表过滤使表的数据量减少,到底这三种效率哪种更高,看了一堆网上说的,都没有说到具体点上,现在对这三种情况专门做以下详细说明,你就会明白到底是怎么回事了? 干货总结:(以下只适用于left join,right join,full join,不适合inner join)1、left join where + 基表过滤条件:先对基表执行过滤,然后进行left join;2、left join where + 被关联表过滤条件:先执行left join,然后执行过滤条件;3、left join on+基表过滤条件:满足过滤的left join,不满足的后面补null,然后两集合并一起;4、left join on+被关联表过滤条件:先执行过滤条件,然后执行left join; 第 …