我正试图用另一个表中的值更新其中一个表的记录。
查找后,我发现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);
您不需要在子选择中加入,只需要一个共同相关的子选择。
您说username
是users
表的PK,但是您的示例使用了列nickname
。如果昵称不是唯一的,则不能将其用作共同相关的子查询。