关于sql中左连接的两个问题

来源:互联网 发布:360手机桌面软件 编辑:程序博客网 时间:2024/05/22 00:49

本来对oracle中的左右连接已经非常熟悉,但是看到项目中写的各式各样的连接自己也迷惑了(+﹏+)~。

摘出来,希望火眼金睛o(≧v≦)o~~的朋友指点一二。

先谢谢了O(∩_∩)O。

为了容易理解,简化了实际复杂的sql,但结构类似

问题1:

  A文(项目使用的):

    select  AA.x,BB.y,CC.z

    from AA,BB,CC

    where AA.id1 = BB.id1(+) and

               AA.id2 = BB.id2(+) and

               BB.id1 = CC.id1(+) and

               BB.id2 = CC.id2(+) and

               AA.m = 'test'

  B文:

    select  AA.x,BB.y,CC.z

    from AA,BB,CC

    where AA.id1 = BB.id1(+) and

               AA.id2 = BB.id2(+) and

               AA.id1 = CC.id1(+) and

               AA.id2 = CC.id2(+) and

               AA.m = 'test'

sql本身想以AA表作为主表查询,但在A文中偷换了主表,B文似乎没什么悬念。

想请教的是A文中移花接木的做法会产生问题么?

 

问题2:

    C文(项目使用的):

       select  AA.x,BB.y,CC.z

       from AA

         left join BB on

               AA.id1 = BB.id1 and

               AA.id2 = BB.id2

         left join CC on

               BB.id1 = CC.id1 and

               BB.id2 = CC.id2

        where  AA.m = ‘test’

     D文:

         select  AA.x,BB.y,CC.z                 

       from AA

         left join BB on

               AA.id1 = BB.id1 and

               AA.id2 = BB.id2

         left join CC on

               AA.id1 = CC.id1 and

               AA.id2 = CC.id2

        where  AA.m = ‘test’

   也是AA表为主表,问题同上面的,C文的写法与D文相比会差生查询结果上的差异么?

如果觉得A文与C文是一样sql的不用写法,费眼回答一个就行。

 

 

 

原创粉丝点击