我有一张桌子,上面有一些评论,其中一个帖子可能很少评论。
我正在用发布数据组成第二张表,发布数据必须只包含一个(最后一个)注释。因此,我必须加入第一个表并在其中找到最后一个注释。
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不存在。查询出错或错误的方法?
答案 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;