Обновление таблицы на основе временной таблицы
В системе postrgres я создал временную таблицу, в которой значение внешнего ключа хранится в другой таблице. Я надеюсь обновить другую таблицу информацией из этой временной таблицы на основе значения внешнего ключа в таблице, которую я хочу обновить.
Я думал использовать запрос на обновление, такой как:
update playerdata set "slotID"=temp1."gameID" from temp1 where playerdata."PlayerID"=playerdata."PlayerID";
Однако когда я делаю это обновление, я получаю одинаковый gameID для каждого slotID в таблице, когда они должны отличаться в зависимости от playerID.
Например, если temp содержит:
playerid gameID
1 10
2 11
результат обновления таблицы данных игрока:
playerid slotID
1 10
2 10
и я хочу, чтобы результат был:
playerid slotID
1 10
2 11
Я также работал с оператором соединения с временной таблицей, и он работает, как и ожидалось, идентификаторы gameID соответствуют их идентификатору playerID. select w."PlayerID", t."gameID" from playerdata as w, temp1 as t where t."PlayerID" = w."PlayerID";
Есть ли способ обновить слоты таблицы данных игрока на основе соответствующих временных идентификаторов игрока и идентификатора игры?
1 ответ
Ваш join
условие неверно в первом запросе:
update playerdata
set "slotID"=temp1."gameID"
from temp1
where playerdata."PlayerID" = temp1."PlayerID";
----------------------------------^