JDBC使用UPDATE FROM状态



我正试图用另一个表中的值更新其中一个表的记录。

查找后,我发现UPDATE FROM STATE应该可以解决问题,但尝试后我得到了错误:

语法错误:在第1行第67列遇到"FROM"。

我的表格(相关字段):

表格用户:字符串昵称浮动日志跟随

表张贴:字符串作者浮动日志信誉浮动流行

我的SQL查询:

UPDATE POSTS SET popularity = POSTS.logRepub * USERS.logFollowers 
FROM POSTS INNER JOIN USERS ON POSTS.author=USERS.nickName

我希望这是所有需要的信息。谢谢你的帮助。

编辑:已尝试:

UPDATE POSTS SET popularity= (SELECT POSTS.logRepub * USERS.logFollowers FROM POSTS INNER JOIN USERS ON POSTS.author=USERS.nickName)

得到错误:

"标量子查询只允许返回一行。"

调用executeUpdate()时;

应该这样做:

UPDATE POSTS 
  SET popularity = logRepub * (SELECT u.logFollowers
                               FROM users u 
                               where u.username = posts.author);

您不需要在子选择中加入,只需要一个共同相关的子选择。

您说usernameusers表的PK,但是您的示例使用了列nickname。如果昵称不是唯一的,则不能将其用作共同相关的子查询。

相关内容

最新更新