如何从第二个表中插入mySQL中的最后一条注释?

如何从第二个表中插入mySQL中的最后一条注释?,mysql,Mysql,我有一个带有评论的表格,其中一个帖子的评论可能很少 我正在用post数据形成第二个表,其中必须只包含一条(最后一条)注释。所以我必须加入第一个表并在其中找到最后一条注释 TABLE 1: --id (of comment)---id (of post) --- comment TABLE 2: --id (of post) ---- comment 我准备了这样的请求: UPDATE table1.posts t1 INNER JOIN table2.posts_comme

我有一个带有评论的表格,其中一个帖子的评论可能很少

我正在用post数据形成第二个表,其中必须只包含一条(最后一条)注释。所以我必须加入第一个表并在其中找到最后一条注释

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不存在。查询中有什么错误或错误的方法

尝试将更新联接与子查询一起使用,该子查询可查找每篇文章的最新评论:

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;

是否确实要使用
posts\u comments
表中的单个最新注释更新
posts
中的所有记录?你能添加一些样本数据吗?@TimBiegeleisen是的,准确!我指的不是表中的最后一条注释,而是该帖子id的最后一条注释。它不起作用,因为在子查询中,您试图从外部查询调用表别名
t2
。您如何知道
posts\u comment
表中的最后一条评论?有时间戳吗?@tcadidot0我按id排序:按id排序描述限制1存储派生数据通常不是一个好主意。感谢您的支持。让我试试这个请求。当我提出这个请求时,我有134个唯一的注释,和我提出不同的注释(posts\u comments)一样:从
2205
中选择order\u id,MAX(id)作为MAX\u id。orders\u comment GROUP BY order\u id,但是结果它写入t1。comment表中只有117行(没有空的或空的。啊哈,我明白了。第二个表中的这些帖子被删除了,这就是为什么只有117行被更新的原因。谢谢你的出色查询,我永远也学不到这样的东西。)