Пересчет сообщений пользователей:
UPDATE core_members m LEFT JOIN ( SELECT author_id, COUNT(*) as posts FROM forums_posts WHERE queued=0 GROUP BY author_id ) z ON m.member_id=z.author_id SET m.member_posts=IFNULL(z.posts, 0);
Пересчет сообщений в темах:
UPDATE forums_topics t LEFT JOIN( SELECT topic_id, COUNT(*) as posts FROM forums_posts WHERE queued=0 GROUP BY topic_id ) z ON z.topic_id=t.tid SET t.posts=IFNULL(z.posts, 0);
Пересчет тем и сообщений в форумах:
UPDATE forums_forums f LEFT JOIN ( SELECT forum_id, COUNT(*) as topics, SUM(posts) as posts FROM forums_topics GROUP BY forum_id ) z ON z.forum_id=f.id SET f.topics=IFNULL(z.topics, 0), f.posts=IFNULL(z.posts, 0);