leftjoininnerjoin效率与⽤法
多表关联时不⼀定都要与A表数据进⾏关联,A关联B ⽣成ab表    on的优先级是⾼于where的  on是在⽣成临时表的时候使⽤的条件,不管on 的条件是否起到作⽤,都会返回左表 (table_name1) 的⾏。where则是在⽣成临时表之后使⽤的条件,此时已经不管是否使⽤了left join了,只要条件不为真的⾏,全部过滤掉
主观上⼀旦搞错了主表,可能怎么调整索引都得不到⾼效的SQL,所以在写SQL时,⽐如说在写LEFT JOIN查询时,如果希望左表是主表,那么就要保证在WHERE语句⾥的查询条件尽可能多的使⽤左表字段,进⽽,⼀旦确定了主表,也最好只通过主表字段去ORDER BY
①sql尽量使⽤数据量⼩的表做主表,这样效率⾼,如果使⽤数据量⼤的表做主表,此时使⽤left join 就会⽐较慢,即使关联条件有索引。但如果使⽤inner join速度就较快。因为inner join 在执⾏的时候回⾃动选择最⼩的表做基础表,效率⾼,总之相⽐之下inner join不管从效率还是速度上都优于left join,毕竟left join 会多⼀部分逻辑运算
sql left join 多表连接
②选择inner join还有个好处,不会产⽣null,有些表我们在定义的时候某些字段不允许存在null,如果⽤left join就可能会产⽣null,此时软件就会报错,⽽inner join可以避免
③在实际运⽤中选择inner join还是left join这个需要根据实际场景进⾏选择,并不是所有的地⽅都能⽤inner join的,建议能⽤则⽤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。