gpt4 book ai didi

mysql - 无法进行合适的查询

转载 作者:行者123 更新时间:2023-11-29 05:01:13 25 4
gpt4 key购买 nike

我正在尝试创建一个数据库。它具有以下表格子集

  1. 工作(job_id,描述)
  2. 技能(skill_id, skills)
  3. 工作和技能(job_id,skill_id)
  4. applicant_skill(applicant_id,skills_id)

我的查询必须是:查找具有给定工作 ID 所需技能的申请人

我使用一系列子查询做了类似的事情

select DISTINCT applicant_id
from applicant_skill
where skill_id in
(select DISTINCT skill_id
from jobs_and_skill
where job_id in (select job_id
from jobs
where description ="research"));

但是在这里,如果我有一份需要技能的工作,比如 A、B、C,而我有只具备技能 A 的候选人,它也会返回该候选人。有没有办法找到具备所有技能 A、B、C 的候选人,而不是只返回所需技能的子集的候选人

最佳答案

使用JOIN 而不是IN。然后,您可以加入一个计算工作所需技能数量的子查询,并将其与申请人共有的技能数量进行比较。

SELECT as.applicant_id
FROM applicant_skill AS as
JOIN jobs_and_skills AS js ON js.skill_id = as.skill_id
JOIN jobs AS j ON j.job_id = js.job_id
JOIN (
SELECT job_id, COUNT(*) AS skill_count
GROUP BY job_id
) AS jsc ON j.job_id = jsc.job_id
WHERE j.description = "research"
GROUP BY as.applicant_id
HAVING COUNT(*) = jsc.skill_count

关于mysql - 无法进行合适的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58847654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com