You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL JOIN语句调试求助:如何同时获取员工匹配岗位要求的技能及非岗位要求技能

问题分析与解决方案

看了你的业务需求和当前的SQL语句,核心问题出在员工技能表与岗位要求表的连接逻辑上:你现在把emp_skills.skill = rqmt.requirement写在了LEFT JOIN empskill_mst的ON子句里,这直接导致只有员工技能恰好匹配某一项岗位要求时,这条技能记录才会被保留;而员工那些不属于岗位要求的技能(比如NHP-SAFE、NHP-CLCK等),因为无法匹配rqmt.requirement,会被这个连接条件过滤掉,所以你在结果里看不到它们。

另外,结果里那条NULL VISIONSC的记录,是岗位要求中存在但员工未掌握的技能,这是pos_rqmt_mst左连empskill_mst产生的空行,但根据你的需求,你并不需要这部分数据——你要的是员工已拥有的所有技能,无论是否匹配岗位要求。


修正后的SQL语句

调整连接顺序和条件,确保员工的所有技能都被保留,再关联岗位要求做匹配判断:

SELECT 
    emp.emp_num AS 'EmployeeID',
    emp.name As 'Name',
    pos_det.dept AS 'Dept',
    pos.job_title AS 'Job Title',
    emp_skills.skill AS 'Skill',
    rqmt.requirement AS 'Requirement',
    skill.description AS 'Descript',
    emp_skills.skill_date AS 'Date Acquired',
    CASE WHEN rqmt.requirement IS NOT NULL THEN 1 ELSE 0 END AS 'Meets Requirement'
FROM employee_mst AS emp
-- 关联员工当前岗位信息
LEFT JOIN emp_pos_mst AS emp_pos 
    ON emp.emp_num = emp_pos.emp_num
LEFT JOIN position_mst AS pos 
    ON emp_pos.job_id = pos.job_id
LEFT JOIN pos_det_mst AS pos_det 
    ON pos_det.job_id = emp_pos.job_id 
    AND pos_det.job_detail = emp_pos.job_detail
-- 优先获取员工所有技能,确保无遗漏
LEFT JOIN empskill_mst AS emp_skills 
    ON emp.emp_num = emp_skills.emp_num
-- 左连接岗位要求,判断当前技能是否属于岗位要求
LEFT JOIN pos_rqmt_mst AS rqmt 
    ON emp_pos.job_id = rqmt.job_id 
    AND emp_skills.skill = rqmt.requirement
LEFT JOIN skill_mst AS skill 
    ON skill.skill = emp_skills.skill
WHERE 
    emp.term_date IS NULL 
    AND emp.emp_num IS NOT NULL
ORDER BY emp.name

关键修正点说明

  1. 调整JOIN顺序:先基于emp_num关联empskill_mst,确保员工的所有技能记录都被保留,不会被岗位要求过滤。
  2. 移动匹配条件:把emp_skills.skill = rqmt.requirement移到pos_rqmt_mst的LEFT JOIN条件中,这样员工技能匹配岗位要求时,rqmt.requirement会有值,否则为NULL。
  3. 优化匹配判断:CASE语句通过rqmt.requirement是否为空来标记是否符合要求,逻辑更准确。

执行这条SQL后,你就能看到员工的所有技能(包括之前缺失的NHP-SAFE、NHP-CLCK等),同时清晰标记哪些技能符合当前岗位要求。

内容的提问来源于stack exchange,提问作者Joseph Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 19:37:28