Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySql self JOIN zapytanie

Możesz użyć agregacji tutaj:

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

To zapytanie powinno korzystać z następującego indeksu:

CREATE INDEX idx ON skill_usage (skill_id, job_id);

Zarówno WHERE i HAVING klauzule, jak napisano, są możliwe do sargowania i powinien móc korzystać z tego indeksu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolejność operacji MySQL?

  2. Używanie DISTINCT i COUNT razem w zapytaniu MySQL

  3. MySQL Gdzie DateTime jest większy niż dzisiaj

  4. Laravel:pobieranie pojedynczej wartości z zapytania MySQL

  5. Zapytanie MySQL „NIE W” 3 tabele