Du kan bruge aggregering her:
SELECT job_id
FROM skill_usage
WHERE skill_id IN (3, 4)
GROUP BY job_id
HAVING MIN(skill_id) <> MAX(skill_id);
Denne forespørgsel bør drage fordel af følgende indeks:
CREATE INDEX idx ON skill_usage (skill_id, job_id);
Både WHERE
og HAVING
klausuler, som skrevet, er sargable , og burde kunne drage fordel af dette indeks.