Как обновить несколько строк таблицы из запроса? И только обновить его, если существует - PullRequest
0 голосов
/ 07 июня 2019

У меня есть таблица, которую необходимо обновить из запроса, и установите флажок для обновления, только если существуют записи в целевой таблице.

Источник:

Id    Name
1     John Doe
2     Jane Doe

Цель:

1     No Name 1
2     No Name 2

Я хотел, чтобы имя было заменено на основе их идентификатора. Как мне написать запрос на обновление цели на основе источника и проверить, существует ли идентификатор цели (не уверен, если это необходимо)

Спасибо.

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Вы можете сделать update с join, если нет соединения, строка не будет обновлена.Помните, что id в source должно быть unique, в противном случае, если для одного идентификатора есть два имени, будет выбрано случайное.

update t
set name = s.name
from target as t 
join source as s
    on s.id = t.id;
1 голос
/ 07 июня 2019

Это то, что вы хотите?

update t
    set name = concat('No Name ', id)
    from target t join
         source s
         on s.id = t.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...