有两个表:
####comments#### ####news######
#cid#news_id# #id##comm_num#
#1##1# #1###2#
#2##1# #2###1#
#3##2# #3###3#
我尝试计数并将表“ comments”中的评论数放入表“ news”中,但结果却是错误的。为什么?
UPDATE news JOIN comments ON news.id = comments.news_id SET
news.comm_num = ( SELECT COUNT( * )
FROM comments WHERE comments.news_id > 123)
WHERE news.id > 123
表'news'中的已评论新闻的'comments.news_id'='id'
我为特定情况写了一个可行的解决方案,但我不知道如何提出条件大于的请求。
UPDATE news a
SET comm_num = (SELECT COUNT(*)
FROM comments c
WHERE c.news_id = 123)
WHERE a.id = 123
最佳答案
只需使用相关的子查询:
UPDATE news n
SET comm_num = (SELECT COUNT(*)
FROM comments c
WHERE c.news_id = n.id
) ;
我不确定
WHERE news.id > 123
的条件是什么。关于mysql - 如何在有条件的情况下将第一个表的行数添加到另一个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53240063/