Edytuj :A co powiesz na to:
UPDATE SUBJECT LEFT JOIN ( SELECT count(*) AS num, subject_id FROM class GROUP BY subject_id where date_time > NOW()) AS t ON SUBJECT.subject_id = t.subject_id SET SUBJECT.current_class_count = coalesce( t.num, 0 )
Tak długo, jak dobrze wpisałem, w zasadzie powinieneś być w stanie uruchomić to raz na godzinę i zaktualizuje twoją tabelę SUBJECT.
Dołączanie do tabeli w instrukcji UPDATE jest nieco inne w MySQL niż w Microsoft SQL. Oto link na ten temat:
http://blog.ookamikun.com/2008/03 /mysql-update-with-join.html