2014-03-13 3 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 

I 또한 임시 테이블과 함께 join 문을 사용하여 작업했으며 예상대로 작동하며 gameID는 해당 위치에 있습니다. 플레이어 ID. select w."PlayerID", t."gameID" from playerdata as w, temp1 as t where t."PlayerID" = w."PlayerID";

해당 임시 playerID 및 gameID를 기반으로 플레이어 데이터 테이블의 슬롯 ID를 업데이트하는 방법이 있습니까?

답변

1

귀하의 join 조건은 첫 번째 쿼리에서 올바르지 않습니다

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

와우, 나는 말 그대로 과거의 시간이 동안 내 머리를 긁적 있었어요. 때로는 신선한 쌍둥이가 필요합니다. 정말 고마워! – ZAX