ОБНОВЛЕНИЕ с несколькими значениями из подзапроса - PullRequest
3 голосов
/ 06 мая 2019

Предположим, у меня есть таблица items с целочисленным столбцом с именем priority, который я пытаюсь обновить из другой таблицы. (Эта другая таблица является временной таблицей, в которой я предварительно рассчитал все подходящие priority значения, которые будут применены.)

UPDATE "items" SET "priority" = (
  SELECT "newPriority" FROM "newPriorities"
);

В конечном итоге все записи в items имеют priority значение first , возвращаемое из подзапроса newPriorities.

Как настроить priority на разные записи? Другими словами, как я могу обновить items, чтобы получить все правильные значения priority из таблицы newPriorities?

Пример данных

items

id                                      priority  /* some other, unreleated columns */
2108f97e-e1ce-47bf-97fd-c20699d2aa27    0
fae2347c-8644-47ba-931f-3d3cf70d3565    1
bd5ed046-47fa-49d9-9b40-2aa920511cf2    3
1fc57417-93e1-4382-8246-c4f9d117a55a    4
2ab4afbc-aa56-45af-8509-a7d9377e689d    5
7407a3a5-d410-4190-81c8-54d672f22c8d    6
1b21b57e-e907-4c25-af00-94bbf941df63    7

newPriorities

id                                      newPriority
2108f97e-e1ce-47bf-97fd-c20699d2aa27    15
fae2347c-8644-47ba-931f-3d3cf70d3565    22
bd5ed046-47fa-49d9-9b40-2aa920511cf2    554
1fc57417-93e1-4382-8246-c4f9d117a55a    8
2ab4afbc-aa56-45af-8509-a7d9377e689d    3
7407a3a5-d410-4190-81c8-54d672f22c8d    6
1b21b57e-e907-4c25-af00-94bbf941df63    743

Желаемый результат : newPriority значения столбца скопированы в items.

1 Ответ

1 голос
/ 06 мая 2019

Вы, кажется, хотите:

UPDATE "items" as i
    SET "priority" = (SELECT "newPriority" 
                      FROM "newPriorities" np
                      WHERE np.id = i.id
                     );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...