如何写这样的sql

flyinsky333 2011-02-16 10:07:55
有三张表HRResume(简历表):
ID PersonName DegreeId(学历) WorkYearId(工作年限) ...
1 张三 2 1
2 李四 1 2
3 王二 4 4
......................
其中DegreeId:1,中学,2,大专,3,本科,4,硕士,5,博士
WorkYearId:1,应届毕业生,2,一年以上,3,二年以上,4,三年以上,5,五年以上,6,八年以上,

RecruitReq(招聘需求表)
ID DeptId(部门) PositionId(岗位) DegreeId(学历) WorkYearId(工作年限) ...
1 1 10 2 2
2 2 11 1 4
.....................
RequestOrder(应聘单据表)
ID ResumeId(简历编号) ReqId(招聘需求编号) OrderDate
1 1 1 2011-02-16
2 2 1 2011-02-16
3 2 2 2011-02-16
..................

现在要再应聘单据表中找出符合招聘需求中的条件的应聘单据。也就是说:
招聘需求表中ID为1的那条记录:部门为1,岗位为10的招聘需求中,要求学历为大专,工作年限为一年以上,那么在应聘单据表中需要按照ResumeId(简历编号)到简历表中查找此应聘人的学历跟工作年限,如果符合那么筛选出来。此处需要注意的是如果应聘需求表中学历为大专,工作年限为一年以上,那么在应聘单据表中应聘人的简历学历在大专以上,工作年限在一年以上的都应该查找出来。请问如何写这样的sql?
...全文
107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyinsky333 2011-03-04
  • 打赏
  • 举报
回复
还有谁知道吗
flyinsky333 2011-02-17
  • 打赏
  • 举报
回复
如果有字段是字符串,那么需要用到like . 这如何写呢
shichao102471077 2011-02-17
  • 打赏
  • 举报
回复
内链接,或者左链接可以到达你的效果,可以参考梦哥的写法去实现
wulg10 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

select a.* from RequestOrder a left join RecruitReq b on a.ReqId=b.ID
left join HRResume a on c.ID=a.ResumeId where c.DegreeId=2 and WorkYearId=2
[/Quote]
1
alan_219_2008 2011-02-16
  • 打赏
  • 举报
回复


select a.PositionId,a.DegreeId,a.WorkYearId,,a.PositionId,b.DeptId,b.PositionId,b.DegreeId,b.WorkYearId,c.PersonName,c.DegreeId,c.WorkYearId
from RecruitReq as a
inner join RequestOrder as b
on a.ID=b.ReqId
left join HRResume as c
on c.Id=b.ResumeId
where a.DegreeId>=c.DegreeId and a.WorkYearId>=c.WorkYearId


试试
alan_219_2008 2011-02-16
  • 打赏
  • 举报
回复
是不是写成存储过程更方便点?
windy19871011 2011-02-16
  • 打赏
  • 举报
回复
select a.* from RequestOrder a left join RecruitReq b on a.ReqId=b.ID
left join HRResume c on c.ID=a.ResumeId where c.DegreeId=2 and c.WorkYearId=2
机器人 2011-02-16
  • 打赏
  • 举报
回复
select ro.*, rr.*, hr.*
from RequestOrder ro
join RecruitReq rr
on ro.ReqId = rr.ID
left join HRResume hr
on ro.ResumeId = hr.ID
where hr.DegreeId >= rr.DegreeId
and hr.WorkYearId >= rr.WorkYearId
机器人 2011-02-16
  • 打赏
  • 举报
回复
select ro.*, rr.*, hr.*
from RequestOrder
join RecruitReq rr
on ro.ReqId = rr.ID
left join HRResume hr
on ro.ResumeId = hr.ID
where hr.DegreeId >= rr.DegreeId
and hr.WorkYearId >= rr.WorkYearId
wuyq11 2011-02-16
  • 打赏
  • 举报
回复
select a.* from RequestOrder a left join RecruitReq b on a.ReqId=b.ID
left join HRResume a on c.ID=a.ResumeId where c.DegreeId=2 and WorkYearId=2

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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