zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    关于 下载 nfs-utils时的 gssproxy conflicts with selinux-policy-3.13.1-102.el7.noarch 错误
    SCP命令
    DHCP服务
    NFS服务
    ssh免密登录
    可见性判断
    (八)图像处理
    (八)图像处理
    (八)Grahpics之Blit
    (七)时间动画_Time
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2776041.html
Copyright © 2011-2022 走看看