【发布时间】:2015-02-27 02:11:03
【问题描述】:
我正在尝试使用我拥有的另一个表中的值更新我的一个表中的记录。
查找后,我看到UPDATE FROM STATE 应该可以解决问题,但尝试后我得到了错误:
语法错误:在第 1 行第 67 列遇到“FROM”。
我的表格(相关字段):
TABLE USERS: STRING nickName FLOAT logFolwers
TABLE POSTS:STRING author 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()时;
【问题讨论】:
-
您使用的是哪个 DBMS?
-
两张表的主键是什么?
-
对于用户:userName varchar(10) PRIMARY KEY,对于帖子:postID INTEGER PRIMARY KEY
-
昵称也是唯一的吗?如果
logFollowers是0怎么办?你想添加logRepub值吗?或者结果也应该是0? -
logFollowers 和 logRebpub 设置为 1 组默认值。昵称确实是独一无二的。感谢您的帮助!