使用IN和子查询进行MYSQL更新

Joh*_*hal 10 mysql subquery sql-view sql-update

嗨我有这样的表:

表格条目:

id | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0

表评论:

id | 开斋节 评论
_____________________
1 | 1 | 评论sdfd
2 | 1 | 测试测试
3 | 1 | 评论文本
4 | 2 | 虚拟评论
5 | 2 | 样本评论
6 | 1 | fg fgh dfh

我写的查询:

UPDATE entry 
   SET total_comments = total_comments + 1 
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

表格条目:

id | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0

Expected results :

table entry :

id | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0

Any help will be appreciated.

OMG*_*ies 19

使用:

UPDATE entry 
   SET total_comments = (SELECT COUNT(*)
                           FROM COMMENTS c
                          WHERE c.eid = id
                       GROUP BY c.eid)
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))
Run Code Online (Sandbox Code Playgroud)