全部在哪里的MySQL

bla*_*dan 5 mysql

我的数据库中有五个表,用户,工作,资格,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)

The*_*ter 6

如果您知道作业所需的资格数量,则可以编写此查询:

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)