gpt4 book ai didi

sql - JDBC 使用 UPDATE FROM 状态

转载 作者:行者123 更新时间:2023-11-28 22:19:17 24 4
gpt4 key购买 nike

我正在尝试使用我拥有的另一个表中的值更新我的一个表中的记录。

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

Syntax error: Encountered "FROM" at line 1, column 67.

我的表(相关字段):

TABLE USERS: STRING nickName FLOAT logFollwers

TABLE POSTS: STRING author FLOAT logRepub FLOAT popularity

我的 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)

得到错误:

"Scalar subquery is only allowed to return a single row."

调用executeUpdate()时;

最佳答案

应该这样做:

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

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

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

关于sql - JDBC 使用 UPDATE FROM 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com