如下三个表:
表A, id  ,name, num_a
      1     a     10
      2     b    20
      3     c    30
      4     d    40
      5     e    50
      6     f    60表B  id  ,  num_b
     1       7
     2       8
     3       9
     5       10表C  id ,num_c
     4     10
     5     20
     目的  id   name  num_a  num_b,mun_c
      1    a     10      7      null
      2    b     20      8       null
      3    c     30      9       null
      4    d      40     null   10
      5    e      50     null    20就是汇总一下B和C表,然后再从A中得到name  ,小弟sql刚入门,各位大哥们指点一下。

解决方案 »

  1.   

    select * from a,b,c where a.id=b.id(+) and a.id=c.id(+)
      

  2.   


    这个(+) 有什么作用么 我用类似的方法搜索过  这样没有null值
      

  3.   

    ID NAME NUM_A ID NUM_B ID NUM_C
    1 a 10 1 7
    2 b 20 2 8
    3 c 30 3 9
    5 e 50 5 10 5 20
    6 f 60
    4 d 40 4 10
      

  4.   

    参考语句:
    select a.id,a.name,a.num_a,b.num_b,c.num_c
    from a left join b on a.id=b.id
    left join c on  a.id=c.id 
      

  5.   

    (+)相当于LEFT JOIN或者RIGHT JOIN ,看你吧他放哪边了
      

  6.   

    SELECT T.ID,T.NAME,T.NA,T.NB,C.NUM_C
    FROM
    (
    SELECT A.ID ID,A.NAME NAME,A.NUM_A NA,B.NUM_B NB
    FROM A LEFT JOIN B
    ON A.ID=B.ID
    )T LEFT JOIN C
    ON T.ID=C.ID
      

  7.   


    类似于 左连 或是 右连  总是放在数据量少的一边  
    上边的是说 a表 左连b 表 和 C表  显示a表所有数据 
    8I之前的写法了 现在用left join  或是  right join