更新基于临时表的表

时间:2014-03-13 02:38:32

标签: sql postgresql sql-update temp

在postrgres系统中,我创建了一个临时表,它将外键值保存到另一个表中。我希望根据我要更新的表中的外键值更新另一个表中包含该临时表的信息。

我的想法是使用更新查询,例如:

update playerdata set "slotID"=temp1."gameID" from temp1 where playerdata."PlayerID"=playerdata."PlayerID";

然而,当我进行此更新时,我会根据playerID为表中的每个slotID获取相同的gameID。

例如,如果temp持有:

playerid gameID
1         10
2         11

播放器数据表更新的结果是:

playerid     slotID
1             10
2             10

我希望结果是:

playerid     slotID
1             10
2             11

我还使用临时表的join语句,它按预期工作,gameID与其对应的playerID一起使用。 select w."PlayerID", t."gameID" from playerdata as w, temp1 as t where t."PlayerID" = w."PlayerID";

有没有办法根据相应的临时玩家ID和游戏ID来更新玩家数据表的slotid?

1 个答案:

答案 0 :(得分:1)

您的join条件在第一个查询中不正确:

update playerdata
    set "slotID"=temp1."gameID"
    from temp1
    where playerdata."PlayerID" = temp1."PlayerID";
----------------------------------^