最近看同事的代码,SQL连表查询的时候不少时候用的是Inner Join,而我以为对咱们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在哪),我用最简单的方式来描述这二者的区别,直接看图(有点草啊):性能
个人作法是永远把查询主体放在左边,而后右边挨个连上要附加的信息,有则连上,没有则留null,这样思路是最清晰的。字体
Inner Join跟这个的区别是若是附加表找不到对应ID,那么这行记录就不会出现,我在图中用红色字体说明了这个区别。(各类Join的方式没有任何性能上的差异,只有功能上的差异)blog
另一定必定要注意这几点:索引
我就简单这么定了:必定使用Left Join(除非你明确知道本身想要的是Inner Join),连表的列必定是指向另外一张表的主键的。效率