使用SELECT子查询的结果更新列

时间:2011-04-26 18:10:02

标签: mysql sql

此查询返回错误:“子查询返回多行”:

UPDATE forums as f 
SET f.f_last_pid = (SELECT pid FROM  posts ORDER BY  ptime DESC )

我知道我需要在子查询之前使用ANY,但这不会得到我想要的正确结果。我想根据子查询中显示的结果更新论坛表中的每一行。

2 个答案:

答案 0 :(得分:4)

UPDATE forums as f 
SET f.f_last_pid = 
    (SELECT pid FROM posts ORDER BY ptime DESC LIMIT 1 )

但是(没有真正了解你的架构),你不会在任何事情上加入这些表。 last_pid中的每个forums都会在posts

中的最后一个帖子进行更新

答案 1 :(得分:0)

UPDATE forums as f
SET f.f_last_pid = (SELECT pid FROM posts ORDER BY ptime DESC LIMIT 1)