有一个A表:字段           A1   B1
           值             a    b有一个B表:字段           A1   C1
           值             c    d现在想组成一个表:字段    A1   B1   C1当a=c的时候,可以 select A1,B1,C1 from A,B where A.A1=B.A1,这样没问题,但是如果
当a不等于c的时候,怎么样组成  字段:        A1   B1   C1
                                            a    b    0
                                            c    0    d      这样呢?

解决方案 »

  1.   

    select a.a1,a.b1,nvl(b.c1,0) c1 from a,b where a.a1=b.a1(+)
    union all
    select b.a1,nvl(a.b1,0) b1,b.c1,0 from a,b where b.a1=a.a1(+)
      

  2.   

    ------修改下。。
    select a.a1,a.b1,nvl(b.c1,0) c1 from a,b where a.a1=b.a1(+)
    union all
    select b.a1,nvl(a.b1,0) b1,b.c1 from a,b where b.a1=a.a1(+)
      

  3.   

    SELECT a1, nvl(b1, 0) b1, nvl(c1, 0) c1 
      FROM a FULL OUTER JOIN b USING (a1);
      

  4.   

    是不是oracle 8 不支持外全连接。
      

  5.   

    全连接:
    select decode(a.a1,null,b.a1,a.a1) as a1,nvl(A.b1,0),nvl(B.c1,0) from A full join B on A.A1 = B.A1;--