【发布时间】:2019-11-14 00:28:03
【问题描述】:
我正在尝试创建一个数据库。它有以下表格子集
- 工作(job_id,描述)
- 技能(skill_id,技能)
- jobs_and_skills(job_id,skill_id)
- 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 的候选人,而不是只返回所需技能子集的候选人
【问题讨论】:
-
applicant_skill中的第二列不应该是skill_id而不是skills? -
另外,你不是有一个单独的表用于
applicants,比如(applicant_id, name, ...)吗? -
@GMB 确实我有一个单独的表格供申请人使用,而且申请者技能应该有技能 ID 作为第二列
标签: mysql database join count sql-in