有两张表,表A和表B,分别有主键id和其他等等字段。
现在执行 :
(1) select * from A left join B on B.id = A.id;
(2) select * from A left join B on A.id = B.id;
第(1)中执行方式是正常的左关联形式(也就是我们平常写的):
这种方式是以A表的id作为B表的id的查询条件,也就是先执行查询A表,再查询B表,第(2)种方式就刚好是相反的。
假如A表有一个索引列name,B表有一个索引列age,当我们进行列表查询时,如果搜索条件中包含name时,我们先检索A表再检索B表,这样的效率会高一些,相同的,如果查询条件中包含age不包含name时,这种情况下,我们先检索B表再已B表的id为基础查询A表,那么效率会高一些。