主表记录:
ID    Name   
1     AA     
2     BB
3     CC子表记录:
ID   Name   Rem
1     AA    100
3     CC    200=================================
查询需要得到的结果
ID   Name   Rem
1     AA    100
2     BB
3     CC    200查询字表所有的记录,但是如果在子表中有记录,则显示子表记录,没有则为空。
或者显示,在子表中有无记录也可以。ID   Name   Rem
1     AA    有
2     BB    无
3     CC    有

解决方案 »

  1.   

    简单点的话,就是直接用左连接查询。select 主表.ID,主表.Name,isnull(子表.Rem,'') as Rem
    from 主表
    left join 子表 on 主表.ID=子表.ID这样查出来的结果就是,如果子表的一个ID有多条记录的话,最终查询出来的结果也是多条的。
      

  2.   

    select a.*,b.Rem
    from 主表 a left join 子表 b on a.ID=b.ID
      

  3.   

    如果只是想知道主表对应的ID有没有在子表存在的话,可以这样写:select 主表.ID,主表.Name,isnull(#Temp.Rem,'无') as Rem
    from 主表
    left join
    (
    select distinct ID,'有' as Rem from 子表
    ) #Temp
    on 主表.ID=#Temp.ID
      

  4.   


    --问题1
    select a.ID,a.Name,b.Rem
    from [主表] a left join [子表] b on a.ID = b.ID
    --问题2
    select a.ID,a.Name,case when b.Rem is not null then '有' else '无' end as Rem
    from [主表] a left join [子表] b on a.ID = b.ID