想把两个表进行左连接,自己写了两个SQL语句:
第一个:select * from 表甲 left join 表乙 on 表甲.B=表乙.A
第二个:select * from 表甲 left join (select * from 表乙 where 表乙.A IN ('101',102)) on 表甲.B=表乙.A
也就是说,第二个方法是想在左连接之前,先进行一次筛选,缩减记录范围,再进行连接;但是要事先查出表甲的B列出现的值。
这两个方法在执行效率上哪一个更好一些?
...全文
5577打赏收藏
这两个数据表左连接方法,哪一个效率会更高一些呢?
想把两个表进行左连接,自己写了两个SQL语句: 第一个:select * from 表甲 left join 表乙 on 表甲.B=表乙.A 第二个:select * from 表甲 left join (select * from 表乙 where 表乙.A IN ('101',102)) on 表甲.B=表乙.A 也就是说,第二个方法是想在左连接之前,先进行一次筛选,缩减记录范围,再进行连接;但是要事先查出表甲的B列出现的值。 这两个方法在执行效率上哪一个更好一些?
explain select * from 表甲 left join 表乙 on 表甲.B=表乙.A
explain select * from 表甲 left join (select * from 表乙 where 表乙.A IN ('101',102)) on 表甲.B=表乙.A
看一下两个语句的执行计划吧