在我们工作中时常要写查询语句,那么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.