Таблица mySQL UPDATE на основе SELECT (count) другой таблицы

У меня есть таблица классов и таблица тем.

 КЛАСС
 | Class_id | class_name | subject_id | date_time |
 ------------------------------------------
 (представьте себе несколько строк)

 ПРЕДМЕТ
 | Subject_id | subject_name | current_class_count |
 ---------------------------------------------
 (представьте себе несколько строк)

Для целей индексирования я хотел бы обновлять список тем каждый час списком классов, у которых date_time больше, чем сейчас.

Я могу сделать предложение select следующим образом:

 SELECT count (*) AS num, subject_id
 Класс FROM
 ГРУППА BY subject_id
 где date_time> СЕЙЧАС ()

и я получу что-то вроде

 РЕЗУЛЬТАТ
 | Num | subject_id |
 ----------------
 |  8 |  1 |
 |  6 |  2 |
 |  9 |  3 |
 ----------------

Каков наиболее эффективный способ обновить таблицу темы с помощью current_class_count ? Я мог бы сделать это с помощью PHP, выполнив цикл и выполнив несколько операторов обновления, но я думаю, что mySql должен иметь более простой способ.

Изменить : Как насчет этого:

 ОБНОВЛЕНИЕ ПРЕДМЕТ
 LEFT JOIN (
 SELECT count (*) AS num, subject_id
 Класс FROM
 ГРУППА BY subject_id
 где date_time> NOW ()) AS t ON SUBJECT.subject_id = t.subject_id
 SET SUBJECT.current_class_count = coalesce (t.num, 0)

Пока я набрал его правильно, в основном вы должны иметь возможность запускать это раз в час, и он обновит вашу таблицу SUBJECT.

Присоединение таблицы в инструкции UPDATE немного отличается от MySQL по сравнению с Microsoft SQL. Вот ссылка на это:

http://blog.ookamikun.com/2008/03/mysql-update-with-join.html