Многостоловый запрос PostgreSQL с именем, именем и фамилией - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть две таблицы в моей базе данных PostgreSQL.

В одной таблице, называемой «Архив», есть столбец «имя», состоящий из двух слов: имя и фамилия, например «Джон Смит», и пустой столбец, который хочет заполнить «user_id '.

Вторая таблица, называемая «Учетными записями пользователей», имеет три столбца, один «имя_первого» и один «фамилия» и один «идентификатор».

Моя цель заключается в реализациизапрос, который использует столбец в Архиве, чтобы выбрать соответствующие имя и фамилию в Учетных записях пользователей и вернуть в Архив «идентификатор» в столбец «идентификатор_пользователя»

1 Ответ

0 голосов
/ 16 сентября 2018

Вы можете использовать join.Например:

select a.*, ua.id as user_id
from archive a left join
     user_accounts ua
     on a.name = ua.first_name || ' ' || ua.last_name;

Если вы действительно хотите обновить столбец:

update archive a 
    set user_id = ua.id
    from user_accounts ua
    where a.name = ua.first_name || ' ' || ua.last_name;

Обратите внимание, что сопоставление имен может быть довольно сложным.Вы можете не получить столько матчей, сколько ожидаете.Если это окажется проблемой, задайте другой вопрос .Включите примерные данные и желаемые результаты в вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...