SQL 查询时join的顺序问题

         在我们工作中时常要写查询语句,那么left join和right join 是查询语句中常见的关联关系。可是我们在使用它们时,有没有想过怎么样去做关联,怎么样选择它们的顺序呢?

比如:A表关联B 表,A也要关联C表,A和B关联时,B和A关联时可能会有Null值出现,也允许Null出现,A和C关联不能有Null值,那么我们先想一想应该怎么样处理它们呢?

可能你会说这还不简单啊,如下所示:

实现1:

select * from C inner join A 

on C.ID=A.ID

Left Join B

on A.Code=B.Code

实现2:

select * from A Left Join B

on A.Code=B.Code

inner join C

on A.ID=C.ID

实现3:

select * from B Right Join A

on A.Code=B.Code

inner join C

on A.ID=C.ID

随便列出的这3中方式,那一直比较好呢?

根据目前的情况来看,如果数据量相当时,先做inner join,然后再

left join 和right join这样可以提供查询的效率。

不过也要结合实际情况来看。一般来讲我们都会优先选择实现1.

原文地址:https://www.cnblogs.com/kevinGao/p/2776041.html