select c.id,a.apoints,b.bpoints,c.cpoints,d.dpoints
from c left join a on a.id=b.id
left join b on a.id=b.id
left join d on a.id=d.id

解决方案 »

  1.   

    select c.id,a.apoints,b.bpoints,c.cpoints,d.dpoints
    from c left join a on a.id=b.id
           left join b on a.id=b.id
           left join d on a.id=d.id
      

  2.   

    select
      isnull(isnull(isnull(a.id,b.id),c.id),d.id) as id,
      a.apoints,
      b.bpoints,
      c.cpoints,
      d.dpoints
    from
      a
    full join b on a.id=b.id
    full join c on a.id=c.id or b.id=c.id
    full join c on a.id=d.id or b.id=d.id or c.id=d.id
      

  3.   

    select
      isnull(isnull(isnull(a.id,b.id),c.id),d.id) as id,
      a.apoints,
      b.bpoints,
      c.cpoints,
      d.dpoints
    from
      a
    full join b on a.id=b.id
    full join c on a.id=c.id or b.id=c.id
    full join d on a.id=d.id or b.id=d.id or c.id=d.id
      

  4.   


    select c.id,a.apoints,b.bpoints ,c.Cpoints ,d.dpoints from  C表 c left outer join A表 a on c.id=a.id left outer join B表 b on c.id=b.id
     left outer join D表 d on a.id=d.id
      

  5.   

    谢谢这么回复,上面的例子数据确实能得到要求的结果。
    但是如果另外的一个表中ID字段有其他的数据呢?写c.id就不妥了,有更好的方法吗,我也是这里出现问题,用Join的ID没法写,谢谢
      

  6.   

    4楼的能完全解决你的问题,他用了full join,而且id也是根据实际情况得到的,可以的。