Vous ne pouvez pas avoir de jointure dans une instruction de mise à jour. Cela devrait être
update articles
set num_comments =
(select count (*) from comments
where comments.article_id = articles.id)
Cela mettra à jour toute la table des articles, ce qui n'est peut-être pas ce que vous voulez. Si vous avez l'intention de mettre à jour un seul article, ajoutez une clause "où" après la sous-requête.