Sieht gut aus. Ich hätte gedacht, man könnte das ganze mit JOINs und einem GROUP BY auch ohne Subqueries machen, aber muss ja nicht sein. Ich probier das mal aus.
EDIT:
Ich hab mal die erste Unterabfrage rausgenommen und es funktioniert. Nur eben, wie genau weiß ich nicht.
SQL-Code:
UPDATE ni_categories c,
(
SELECT a.catid, COUNT( a.articleid ) AS articleCount
FROM ni_articles a
GROUP BY a.catid
)ac
SET c.articles = ac.articleCount WHERE ac.catid = c.catid