SQL查询,主表记要,在子表中是否有记录的标记
SQL查询,主表记录,在子表中是否有记录的标记
主表记录:
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 有
------解决方案--------------------
简单点的话,就是直接用左连接查询。
主表记录:
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 有
------解决方案--------------------
简单点的话,就是直接用左连接查询。
- SQL code
select 主表.ID,主表.Name,isnull(子表.Rem,'') as Rem from 主表 left join 子表 on 主表.ID=子表.ID
------解决方案--------------------
如果只是想知道主表对应的ID有没有在子表存在的话,可以这样写:
- SQL code
select 主表.ID,主表.Name,isnull(#Temp.Rem,'无') as Rem from 主表 left join ( select distinct ID,'有' as Rem from 子表 ) #Temp on 主表.ID=#Temp.ID