表A:a  b  c  d
     1  1  2  3
     1  1  3  4表B  a  b  c  f
     1  1  2  5SELECT  *  from A aa, B bb where aa.a=bb.a and aa.b=bb.b
应该会得到 a  b  c  d  c f
           1  1  2  3  2 5
           1  1  3  4  2 5
我怎样才能得到表:  a  b  c  d  c  f
                   1  1  2  3  2  5
                   1  1  3  4

解决方案 »

  1.   


    SQL> 
    SQL> with A as (
      2  select    1 a, 1 b,  2 c, 3 d from dual union all
      3  select     1,  1,  3,  4 from dual
      4  ),
      5  B as
      6  (
      7  select 1 a,  1 b ,  2 c,  5 f from dual
      8  )
      9  SELECT  aa.*,bb.c,bb.f  from A aa left join  B bb on aa.a=bb.a and aa.b=bb.b and aa.c= bb.c
     10  /         A          B          C          D          C          F
    ---------- ---------- ---------- ---------- ---------- ----------
             1          1          2          3          2          5
             1          1          3          4            SQL> 
      

  2.   

    SELECT  *  from A aa, B bb where aa.a=bb.a and aa.b=bb.b and aa.c= bb.c(+)
      

  3.   

    楼主是不是少写了一个条件 aa.c=bb.c
    SELECT  aa.*, bb.c, bb.f  from A aa left join B bb on aa.a=bb.a and aa.b=bb.b and aa.c=bb.c
      

  4.   

      呵呵  因为使用的简单的例子来形容那条sql语句,所以我现在都说不准了。不过我今天用了一种笨方法用了14761个字母才搞定了那条sql语句  悲剧!!!