首页 SQLServer SQL表关联主外键查询,把不存在的数据以空值列出来

SQL表关联主外键查询,把不存在的数据以空值列出来

作者:胡同里的砖头 围观群众:1628 更新于:2013-12-19

现有3张表,A表人员表,B表小组表,C表关系表(人员属于那个小组)
A表中数据:
  PerId PerName 
  1             张三
  2             王五
  3             李四
等等

B表中数据
 GroupId GroupName
  1                 小组1
  2                 小组2
  3                 小组3
等等

C表中数据
 Id     PerId GroupId  
  1        1            2
没了

想获得查询结果:
 PerName GroupName
  张三             小组2
  王五            无小组
  李四            无小组
解决方法:
create table A(PerId int,PerName varchar(10))
insert into a values(1 ,'张三')
insert into a values(2 ,'王五')
insert into a values(3 ,'李四')
create table B(GroupId int,GroupName varchar(10))
insert into b values(1 ,'小组1')
insert into b values(2 ,'小组2')
insert into b values(3 ,'小组3')
create table C(Id int,PerId int,GroupId int)
insert into c values(1 ,1 ,2)
go

select a.PerName , isnull(b.GroupName,'无小组') GroupName
from a left join c on a.PerId = c.PerId
left join b on c.GroupId = b.GroupId

drop table a ,b , c

/*
PerName    GroupName 
---------- ----------
张三         小组2
王五         无小组
李四         无小组

(所影响的行数为 3 行)
*/

  • 本文标题: SQL表关联主外键查询,把不存在的数据以空值列出来
  • 文章分类:【SQLServer】
  • 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
留言评论
站点声明:
1、本站【胡同里的砖头】个人博客,借鉴网上一些博客模板,取其各优点模块自行拼装开发,本博客开发纯属个人爱好。
2、所有笔记提供给广大用户交流使用,可转载,可复制,纯个人开发所遇问题锦集记录使用
Copyright © huzlblog.com All Rights Reserved. 备案号:苏ICP备2021056683号-8