【问题标题】:Update Table Based Off Temporary Table基于临时表更新表
【发布时间】:2014-03-13 02:38:32
【问题描述】:

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

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

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

但是,当我进行此更新时,我会为表中的每个 slotID 获得相同的 gameID,而根据 playerID,它们应该是不同的。

例如,如果临时成立:

playerid gameID
1         10
2         11

玩家数据表更新的结果是:

playerid     slotID
1             10
2             10

我希望结果是:

playerid     slotID
1             10
2             11

我还使用了临时表的连接语句,它按预期工作,游戏 ID 与其对应的玩家 ID。 select w."PlayerID", t."gameID" from playerdata as w, temp1 as t where t."PlayerID" = w."PlayerID";

有没有办法根据相应的临时 playerID 和 gameID 更新玩家数据表的 slotid?

【问题讨论】:

    标签: sql postgresql sql-update temp


    【解决方案1】:

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

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

    【讨论】:

    • 哇,在过去的一个小时里,我一直在为这个问题挠头。有时只需要一双新鲜的眼睛。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多