我正在尝试使用我拥有的另一个表中的值来更新其中一个表中的记录。
在查找之后,我看到UPDATE FROM STATE
应该解决问题,但在尝试后我得到了错误:
语法错误:在第1行第67行遇到“FROM”。
我的表格(相关领域):
表用户:STRING nickName FLOAT logFollwers
TABLE POSTS:STRING作者FLOAT logRepub FLOAT流行度
我的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();
时答案 0 :(得分:1)
这样的事情应该这样做:
UPDATE POSTS
SET popularity = logRepub * (SELECT u.logFollowers
FROM users u
where u.username = posts.author);
您不需要在子选择中加入,您只需要一个共同相关的子选择。
您说username
是users
表的PK,但您的示例使用列nickname
。如果昵称不是唯一的,则不能将其用作共同相关的子查询。