du mangler et indeks. Prøv at bruge EXPLAIN til at analysere din forespørgsel, det vil hjælpe dig meget.
Løsningen er enkel, her er den:http://sqlfiddle.com/#! 2/56deb/1/0
Du skal tilføje et indeks, der inkluderer kolonnerne brugt i where-sætningen i den rækkefølge, de bruges:
KEY `night_of_2` (`night_of`,`student_id`,`check_class`)
Du skal også tvinge brugen af indekset på joinforbindelsen, da du slutter tabellen til sig selv:
JOIN checks checks2
FORCE INDEX ( night_of_2 ) ON ( checks1.night_of =checks2.night_of )
(hvis der er en bedre måde, vil jeg gerne vide om det) :)
Med venlig hilsen