【发布时间】:2011-09-02 09:01:00
【问题描述】:
我设置了以下表格:
Articles:
ID | TITLE | CONTENT | USER | NUM_COMMENTS
COMMENTS
ID | ARTICLE_ID | TEXT
我需要一个 sql 语句来更新文章表的 NUM_Comments 字段,其中包含针对文章所做的 cmets 计数,例如:
update articles a, comments f
set a.num_comments = COUNT(f.`id`)
where f.article_id = a.id
上面的 sql 不起作用,我收到 Invalid Use fo Group 函数错误。我在这里使用 MySQL。
【问题讨论】:
-
您究竟为什么要将这些信息存储在您的文章表中?您是否考虑过在每次需要该信息时计算 cmets?这样您就可以避免在数据库架构中出现重复的信息。
-
文章表很大,我想避免进行连接,因为我还需要根据评论最多的方式对文章进行排序。
-
好的,那么您的另一种选择是某种“物化视图”。
标签: mysql sql mysql-error-1111