小编典典

用COUNT个其他字段更新列是SQL吗?

sql

我设置了以下表格:

Articles:
ID | TITLE | CONTENT | USER | NUM_COMMENTS

COMMENTS
ID | ARTICLE_ID | TEXT

我需要一条sql语句,该语句使用对文章的评论计数来更新articles表的NUM_Comments字段,例如:

update articles a, comments f 
set a.num_comments =  COUNT(f.`id`)
where f.article_id = a.id

上面的sql无法正常工作,并且出现“使用组功能无效”错误。我在这里使用MySQL。


阅读 171

收藏
2021-04-22

共1个答案

小编典典

您不能在更新语句中加入。它应该是

update articles
set num_comments =
(select count (*) from comments
where comments.article_id = articles.id)

这将更新整个文章表,而这可能不是您想要的。如果您只打算更新一篇文章,则在子查询之后添加一个“ where”子句。

2021-04-22