2014-03-13 61 views
0

在postrgres系統中,我創建了一個臨時表,該臨時表將外鍵值保存到另一個表中。我希望根據我想更新的表中的外鍵值更新另一張來自該臨時表的信息。基於更新表的臨時表

我的想法是使用一個更新查詢,如:

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

然而,當我這樣做更新,我爲每一個slotID用於相同的遊戲ID的表時,他們應該是不同的基於斷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?

回答

1

join條件是在第一個查詢不正確:

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

哇,我硬是被抓我的頭在這個過去一小時。有時候只需要一雙新鮮的眼睛。非常感謝! – ZAX