有A,B,C,D 4个表
A表是学生信息表,包含学生学号、姓名等基本信息
B表是学生进度表,包含学生学号、进度等学习情况信息
C表是学生违纪表,包含学生学号、违纪次数等相关信息
D表是学生就业表,包含学生学号,就业企业等就业相关信息注意:以上表中各个学生记录唯一,譬如A表中只有学号为03041154学生的一条记录
B表中只有学号为03041154学生的一条记录现在存在这样的问题,A表中包含所有学员的信息,但是B,C,D表中只包含部分学员
的相关记录,譬如,学号为03041154的学员记录在A表中有,但是在B表中没有,
C表中有,D表中没有,等。怎么实现以A表为基础,查询所有学员的上述4个表中的信息,表中有的显示信息,
没有就空着譬如
  学号     进度  违纪次数 就业
03041154            10     是
03041155   C++             否

解决方案 »

  1.   

    select 
    A.*,
    B.除了学号你要的字段,
    C.除了学号你要的字段,
    D.除了学号你要的字段
    from
    A left join B
    on A.学号 = A.学号
    left join C
    on A.学号 = C.学号
    left join D
    on A.学号 = D.学号
      

  2.   

    --更正笔误
    select
    A.*,
    B.除了学号你要的字段,
    C.除了学号你要的字段,
    D.除了学号你要的字段
    from
    A left join B
    on A.学号 = B.学号
    left join C
    on A.学号 = C.学号
    left join D
    on A.学号 = D.学号
      

  3.   

    Select 
          A.学号,
          IsNull(B.进度,'') As 进度,
          IsNull(C.违纪次数,'') As 违纪次数,
          Case When D.就业企业 Is Null Then '否' Else '是' End As 就业
    From  A
    Left Join B
         On A.学号=B.学号
    Left Join C
         On A.学号=C.学号
    Left Join D
         On A.学号=D.学号
      

  4.   

    支持`
    select
    A.*,
    B.除了学号你要的字段,
    C.除了学号你要的字段,
    D.除了学号你要的字段
    from
    A left join B
    on A.学号 = B.学号
    left join C
    on A.学号 = C.学号
    left join D
    on A.学号 = D.学号