0

我有一个表格,将用户提交的帖子存储在posts表格中。用户还可以“点赞”这些帖子。点赞存储在likes表格中,每个点赞一行,包含 、iduserpostid

我现在在表格中添加了一likesposts。如何为每个帖子更新表格中的likesposts,以反映likes表格中该帖子的喜欢数量?

蒂亚!

4

3 回答 3

1
UPDATE posts p
JOIN (SELECT postid, COUNT(*) c
      FROM likes
      GROUP BY postid) l
ON p.id = l.postid
SET p.likes = l.c
于 2013-05-20T07:07:11.367 回答
1

带有子查询的版本

UPDATE posts p
   SET likes = (SELECT COUNT(*) FROM likes WHERE postid = p.postid)

SQLFiddle

于 2013-05-20T07:12:54.453 回答
0
update posts p
left join
(
select postid, count(*) likes
from likes
group by postid
) l on p.id = l.postid
set p.likes = ifnull(l.likes, 0);
于 2013-05-20T07:11:31.760 回答