我已经看到有关此特定错误消息的几个问题,但找不到与我的问题匹配的任何问题。
只是对我的问题的快速解释。
我有一张包含一些游戏结果的表格。
当有人缺席时,我们将这个人在之前游戏中的平均值存储为游戏结果,并将属性 f_present 设置为 0。
对于那部分没有问题。
当我们修改旧游戏时会出现问题,我必须更新以下所有有人缺席的游戏以存储新值(该玩家缺席的游戏的新平均值。)
我可以进行查询,但由于“您无法在 FROM 表中指定要更新的目标表”错误消息,我无法进行更新。
这是我的查询(有效)
select t1.f_subgame_id,
t1.F_PLAYER_ID,
(SELECT avg(t2.f_result)
from t_subgames_results t2
join t_subgames t2s on t2s.f_subgame_id = t2.f_subgame_id
join t_seasons_games t2ss on t2ss.f_game_id = t2s.f_game_id
where F_RESULT > -1
and F_PLAYER_ID = t1.F_PLAYER_ID
and t2ss.F_SEASON_ID = t1ss.F_SEASON_ID
and t2ss.F_DATE < t1ss.F_DATE
)
from t_subgames_results t1
join t_subgames t1s on t1s.f_subgame_id = t1.f_subgame_id
join t_seasons_games t1ss on t1ss.f_game_id = t1s.f_game_id
where t1ss.f_date>'2012-09-07' and t1.F_PRESENT = 0;
这是我的更新尝试:
update t_subgames_results t1
join t_subgames t1s on t1s.f_subgame_id = t1.f_subgame_id
join t_seasons_games t1ss on t1ss.f_game_id = t1s.f_game_id
set f_result =
(SELECT avg(t2.f_result) as result
from t_subgames_results t2
join t_subgames t2s on t2s.f_subgame_id = t2.f_subgame_id
join t_seasons_games t2ss on t2ss.f_game_id = t2s.f_game_id
where F_RESULT > -1
and F_PLAYER_ID = t1.F_PLAYER_ID
and t2ss.F_SEASON_ID = t1ss.F_SEASON_ID
and t2ss.F_DATE < t1ss.F_DATE
)
where t1ss.f_date>'2012-09-07' and t1.F_PRESENT = 0;
同样,我知道有几个关于这个问题的话题,但似乎找不到与我的问题相关的话题......
再次感谢您帮助我!