如何在第二个表中的MySQL中插入最后一个注释?

时间:2019-05-23 05:30:36

标签: mysql

我有一张桌子,上面有一些评论,其中一个帖子可能很少评论。

我正在用发布数据组成第二张表,发布数据必须只包含一个(最后一个)注释。因此,我必须加入第一个表并在其中找到最后一个注释。

TABLE 1: --id (of comment)---id (of post) --- comment 
TABLE 2: --id (of post) ---- comment 

我已经准备好了这样的请求:

UPDATE table1.posts t1
        INNER JOIN table2.posts_comments t2 
             ON t1.id = t2.post_id
SET t1.comment = (SELECT comment FROM t2  ORDER BY ID DESC LIMIT 1)

但是它告诉我t2不存在。查询出错或错误的方法?

1 个答案:

答案 0 :(得分:1)

尝试使用带有子查询的更新联接,该子查询可查找每个帖子的最新评论:

UPDATE table1.posts t1
INNER JOIN
(
    SELECT post_id, MAX(ID) AS max_id
    FROM table2.posts_comments
    GROUP BY post_id
) t2
    ON t1.id = t2.post_id
INNER JOIN table2.posts_comments t3
    ON t2.post_id = t3.post_id AND t2.max_id = t3.ID
SET t1.comment = t3.comment;