Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySql-Self-JOIN-Abfrage

Sie können die Aggregation hier verwenden:

SELECT job_id
FROM skill_usage
WHERE skill_id IN (3, 4)
GROUP BY job_id
HAVING MIN(skill_id) <> MAX(skill_id);

Diese Abfrage sollte von folgendem Index profitieren:

CREATE INDEX idx ON skill_usage (skill_id, job_id);

Sowohl das WHERE und HAVING Klauseln, wie geschrieben, sind sargable , und sollte in der Lage sein, diesen Index zu nutzen.