我的数据库中有五个表,用户,工作,资格,job_qualifications和users_qualification
我需要选择所有有资格执行特定工作的员工.如果存在诸如ALL IN之类的语句将是有用的,例如查询将是
SELECT user_id
FROM users_qualification
WHERE qualification_id ALL IN
(
SELECT qualification_id
FROM job_qualifications
WHERE jobs_id = 1
)
Run Code Online (Sandbox Code Playgroud)
如果您知道作业所需的资格数量,则可以编写此查询:
SELECT uq.user_id
FROM users_qualification uq JOIN job_qualifications jq
ON uq.qualification_id = jq.qualification_id
WHERE jq.jobs_id = 1
GROUP BY uq.user_id
HAVING COUNT(*) = {# of qualifications}
Run Code Online (Sandbox Code Playgroud)
要查找资格数量,请运行:
SELECT COUNT(*)
FROM job_qualifications
WHERE jq.jobs_id = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2877 次 |
| 最近记录: |