A表:
 A1      A2
 1       aaa
 2       bbb
 3       ccc
B表
 B1      B2
 1       qqqq
 1       ssss
 4       dddddselect * from A left join B on A1=B1
请问结果是 
          1     aaa
还是
          1     aaa
         1     aaa
谢谢高手....????????????

解决方案 »

  1.   

    SQL> create table a (A1 int primary key, A2 varchar2(10))
      2  ;表已创建。SQL> create table b (B1 int primary key, B2 varchar2(10));表已创建。SQL> select * from a left join b on a.A1=b.B1;        A1 A2                 A1 A2
    ---------- ---------- ---------- ----------
             1 aaa                 1 qqqq
             2 bbb                 2 ssss
             3 ccc                 3 dddd
      

  2.   


    a1  a2  b1 b2
    1   aaa  1 qqqq
    1   aaa  1 ssss
    2   bbb
    3   ccc
      

  3.   

    SQL> select * from a right join b on b.a1=a.a1;        A1 A2                 A1 A2
    ---------- ---------- ---------- ----------
             1 aaa                 1 qqqq
             2 bbb                 2 ssss
             3 ccc                 3 dddd
      

  4.   

    1      aaa 1      qqqq 
    1      aaa 1      ssss 
    2      bbb 
    3      ccc 
      

  5.   

    右连接也可以如下:SQL> select * from a,b where a.a1(+)=b.a1;           A1 A2                 A1 A2
    ---------- ---------- ---------- ----------
             1 aaa                 1 qqqq
             2 bbb                 2 ssss
             3 ccc                 3 dddd表示(+)所在位置的另一侧表示连接方向,说明“=”右侧的所有记录均会显示,不管左侧是不是有匹配的记录。如下:SQL> select a2,b2 from a,b where a.a1(+)=b.b1;A2         B2
    ---------- ----------
    aaa        qqqq
    bbb        ssss
    ccc        dddd
               ss
      

  6.   

    左连接:SQL> select a2,b2 from a,b where a.a1=b.b1(+);A2         B2
    ---------- ----------
    aaa        qqqq
    bbb        ssss
    ccc        dddd(+)所在的另一侧记录会全部显示