问题描述:
A表    字段1,B表    字段1, 字段2,C表    字段1,字段2,关系:B.字段1=A.字段1
      C.字段1 = B.字段2但可能情况:对B表,B.字段1=A.字段1,一定有记录
            对C表,C.字段1 = B.字段2,不一定有记录我现在要求一条sql语句,联合上述三张表,通过A.字段1,获取B.字段2,及C.字段2,...等字段信息
当对B表,B.字段1=A.字段1,有记录
  对C表,C.字段1 = B.字段2,没有记录时,显示形如:
select B.字段2,C.字段2,C.字段3,...
        XX001     ''/NULL   ''/NULL当对B表,B.字段1=A.字段1,有记录
  对C表,C.字段1 = B.字段2,有记录时,显示形如:
select B.字段2,C.字段2,C.字段3,...
        XX001     YY001    ZZ001请问如何实现?

解决方案 »

  1.   

    select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
    from a inner join b on a.字段1=B.字段1
    left join c on B.字段2 = C.字段1
      

  2.   

    这两种应该都行,你自己试试.select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
    from a left join b on a.字段1=B.字段1
    left join c on B.字段2 = C.字段1select a.* , b.* , c.* --这里自己选择你需要的字段,如果对没有的字段按照你的要求可以用isnull(C.字段2,'')
    from a inner join b on a.字段1=B.字段1
    left join c on B.字段2 = C.字段1