请各位帮我一下!

LoseProphet 2006-03-09 11:07:54
我今天遇到一个很奇怪的问题:我在数据库(SQL Server)里存在三张表,第一张用于记录人员的基本信息(也是主表),字段有:PersonID、Name、Sex、Identity,第二张表记录的是人员的学历情况,字段有:PersonID、学历、毕业时间、毕业学校,第三张表用于记录人员的档案情况,字段有:PersonID,档案编号,档案去向。这三张表都存在字段PersonID,如果这三张表都存在同一个PersonID,那按照第一张表的Name查询人员姓名、性别、身份证、学历、毕业时间、毕业学校、档案编号、档案去向的信息就没有问题,如果第三张表是空表,查不出在第一、二张表存在同一个PersonID的信息。
我想问就是,我如何写存储过程来,以姓名查询某人的Name、Sex、Identity、学历、毕业时间、毕业学校、档案编号,档案去向,但是因为第三张表是空表,所以查出来的结果,要求档案编号,档案去向的内容为空值。还有,第三张表可能有数据,可能没有数据,请问在没有数据的情况怎么查所有信息?

说简单一些就是:第一张表A01,存在一条记录:PersonID为001,Name为小李,Sex为男,Identity为510000000000000000,第二张表A02,存在一条记录:PersonID为001,学历为本科,毕业时间为2000-06-01,毕业学校为四川大学,第三张表本来应该存在记录的,但是记录被清除了,所以,我如果以小李查询的话,我想得到Name为小李,Sex为男,Identity为510000000000000000,学历为本科,毕业时间为2000-06-01,毕业学校为四川大学,档案编号为空值(null),档案去向为空值(null)的纪录。
谢谢回答,也谢谢您帮助我!请回答者留下QQ,以便我这个超级新人向您学习!
另,小弟只有10分了,不好意思!
...全文
57 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoseProphet 2006-03-10
  • 打赏
  • 举报
回复
谢谢了~!
ping3000 2006-03-10
  • 打赏
  • 举报
回复
你有问题可以来这里啊,大家都会帮忙的
我的邮箱studycsharp@163.com
LoseProphet 2006-03-10
  • 打赏
  • 举报
回复

谢谢
你能告诉我你的联系方式吗?QQ、MSN、EMail都可以,谢谢!
ping3000 2006-03-10
  • 打赏
  • 举报
回复
可以,你试一下就知道了
LoseProphet 2006-03-09
  • 打赏
  • 举报
回复
嗯....
但是表3没有数据阿~!
用Left Join可以吗?
ping3000 2006-03-09
  • 打赏
  • 举报
回复
这种情况用left join

create proc GetPersonInfomation
@PersonID int

as
select 表1.PersonID,表1.Name,表1.Sex,表1.[Identity],
表2.学历,表2.毕业时间,表2.毕业学校,
表3.档案编号,表3.档案去向
from 表1
left join 表2 on 表1.PersonID = 表2.PersonID
left join 表3 on 表1.PersonID = 表3.PersonID

GO
LoseProphet 2006-03-09
  • 打赏
  • 举报
回复
怎么没有人帮我啊?
99我啊!

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧