【说明】
本文主要是针对以下两个问题进行的分析整理:
1、如果SQL中存在left join,是否绝对无法改写?
2、在left join左边的表,并不一定就是驱动表,explain执行计划可能会将left join右边的表作为驱动表,什么情况下,会产生这种情况?

【left join的用途】

我们先来了解下left join的实际用途,即它会产生什么效果。
left join(左联接),会返回包括左表中的所有记录和右表中联结字段相等的记录。
这句话的含义是,如果a left join b,那么返回的结果集是“a表与b表join关联得到的结果集”+"a表中,无法与b关联的其它数据",其中,a与b无法关联的数据只会显示a表的内容,b表对应的内容都为空。所以a left join b得到的数据行数,是大于等于a表的数据行的。

示例:

a、b表的结构、数
收藏 打印