chybí vám index. Zkuste použít EXPLAIN k analýze vašeho dotazu, hodně vám to pomůže.
Řešení je jednoduché, tady je:http://sqlfiddle.com/#! 2/56 deb/1/0
Musíte přidat index, který zahrnuje sloupce použité v příkazu where v pořadí, v jakém jsou použity:
KEY `night_of_2` (`night_of`,`student_id`,`check_class`)
Také musíte vynutit použití indexu při spojení, protože tabulku připojujete k sobě:
JOIN checks checks2
FORCE INDEX ( night_of_2 ) ON ( checks1.night_of =check2.night_of )
(pokud existuje lepší způsob, rád bych o něm věděl) :)
S pozdravem