本帖最后由 liuxingfffff 于 2010-05-27 21:50:05 编辑

解决方案 »

  1.   

    建议使用ansi左连接
    declare @A table
    (
    A_Id int PRIMARY KEY,  
    A_Name char(10)
    )   
    declare @B table
    (   
    B_Id int PRIMARY KEY,
    B_Name char(10),
    A_Id int
    )
    declare @C table
    (
    B_Id int,
    D_Id int
    )   
    declare @D table
    (  
    D_Id int,
    D_Name  char(10) 
    )SELECT E.*,F.*
    FROM  
    (
      SELECT A.*,B.b_id,b.b_name
      FROM @A a,@B b
      WHERE A.A_Id = B.A_Id
    ) E left join 
    (
      SELECT C.*,D.d_name
      FROM @C c,@D d
      WHERE C.D_Id = D.D_Id
    ) F
     on e.b_id=f.b_id
      

  2.   

    SELECT * 
    FROM a
    JOIN b
    ON  a.i_id = b.a_id
    LEFT JOIN c
    ON  c.b_id = c._b_id
    JOIN d
    ON  c.d_id = d.d_id