0

我正在尝试更新 Oracle 表中的一Goals列,以便每个Game接收来自 Player 表中的平均进球数的列,goal_scored但我不断收到以下错误消息:

“错误:ORA-01427:单行子查询返回多行”

我已经测试了查询,它返回的行数和Games正确的结果一样多。

这是我的代码:

UPDATE GEN
    SET Goals = (Select AVG(goal_scored) FROM Player, Gen, Game
    WHERE Game.Name=Gen.Gameid AND Player.Gameid=Game.Name
    GROUP BY Player.Gamename);

如果我跳过GROUP BY我没有得到错误,但所有Games 得到相同的平均分数。

4

1 回答 1

2

跳过Gen子选择(但将其保留在where子句中):

UPDATE GEN
    SET Goals = (Select AVG(goal_scored) FROM Player, Game
    WHERE Game.Name=Gen.Gameid AND Player.Gameid=Game.Name);

这解决了您的语法错误,但我感觉这不是您想要的。请参阅 Ed Gibbs 的问题评论。

于 2013-05-17T13:38:51.850 回答