du saknar ett index. Testa att använda EXPLAIN för att analysera din fråga, det kommer att hjälpa dig mycket.
Lösningen är enkel, här är den:http://sqlfiddle.com/#! 2/56deb/1/0
Du måste lägga till ett index som inkluderar kolumnerna som används i where-satsen i den ordning de används:
KEY `night_of_2` (`night_of`,`student_id`,`check_class`)
Du måste också tvinga fram användningen av indexet på kopplingen, eftersom du ansluter tabellen till sig själv:
JOIN checks checks2
FORCE INDEX ( night_of_2 ) ON ( checks1.night_of =checks2.night_of )
(om det finns ett bättre sätt skulle jag vilja veta om det) :)
Hälsningar,