il vous manque un index. Essayez d'utiliser EXPLAIN pour analyser votre requête, cela vous aidera beaucoup.
La solution est simple, la voici :http://sqlfiddle.com/# ! 2/56deb/1/0
Vous devez ajouter un index qui inclut les colonnes utilisées dans l'instruction where dans l'ordre où elles sont utilisées :
KEY `night_of_2` (`night_of`,`student_id`,`check_class`)
Il faut aussi forcer l'utilisation de l'index sur la jointure, puisque vous joignez la table à elle-même :
JOIN checks checks2
FORCE INDEX ( night_of_2 ) ON ( checks1.night_of =checks2.night_of )
(s'il y a un meilleur moyen, j'aimerais le savoir) :)
Cordialement,