声明------- A:大表
B:小表
第一种写法.
select * from A a,B b
where
b.id = a.b_id
第二种写法:
select * from A a,B b
wehre
a.b_id = b.id
乍一看,两个sql是没有什么不一样的地方 ;
但仔细分析后就能看出区别在哪里?:
第一种写法是根据B表的id来关联A表的b_id;
而第二种写法是根据A表的b_id来关联B表的id;
这两种写法在查询效率上来讲也是存在着很大的差别的:(注:a > b)
第一种写法等于是 a的b次方 来进行遍历查询;
而第二种写法等于是 b的a次方 来进行遍历查询;
由计算结果可知:
a的b次方 < b的a次方
总结 :
当两个表进行关联时,可让小表的关联条件置于前面,大表的关联条件置于后面;
即 b.id = a.b_id;
这样将有效的提高本条sql的执行效率。