bạn đang thiếu một chỉ mục. Hãy thử sử dụng EXPLAIN để phân tích truy vấn của bạn, nó sẽ giúp bạn rất nhiều.
Giải pháp rất đơn giản, đây là: http://sqlfiddle.com/#! 2 / 56deb / 1/0
Bạn cần thêm một chỉ mục bao gồm các cột được sử dụng trong câu lệnh where theo thứ tự chúng được sử dụng:
KEY `night_of_2` (`night_of`,`student_id`,`check_class`)
Ngoài ra, bạn cần buộc sử dụng chỉ mục trên tham gia, vì bạn đang tham gia bảng với chính nó:
JOIN checks checks2
FORCE INDEX (night_of_2) BẬT (checks1.night_of =checks2.night_of)
(nếu có cách nào tốt hơn, tôi muốn biết về nó) :)
Trân trọng,