Выберите клиента из таблицы A, затем найдите клиента в таблице B и вставьте идентификатор customer_id в таблицу B - PullRequest
0 голосов
/ 18 февраля 2020

Я беру старые записи из таблиц Excel и перемещаю их в базу данных.

У меня есть таблица клиентов и таблица заказов.

В таблице клиентов есть поля customer_id --- первичный ключ --- автоинкремент First_Name Last_Name

В таблице заказов есть поля: customer_id (пустым будет внешний ключ для таблицы клиентов) First_Name ( заполнено) Last_Name (заполнено)

Мне нужно выбрать строку customer_id, first_name и last_name строка за строкой из таблицы клиентов, затем найти каждый заказ в таблице заказов с тем же именем и вставить идентификатор customer_id из таблицы клиентов в стол заказов.

Существует около 5000 заказов и 3000 уникальных клиентов, и я пытаюсь назначить customer_id для каждого заказа. Я могу сделать это вручную, но это займет неделю воскресенья.

Спасибо

1 Ответ

1 голос
/ 18 февраля 2020

У вашей существующей конструкции таблицы есть проблемы (например, что, если два или более клиентов имеют одно и то же имя?), Но если вы хотите обновить customer_id на основе имени клиента, вы можете попробовать выполнить запрос следующим образом.

update o
set o.customer_id =c.customer_id 
from orders o
inner join customers c on c.First_Name =o.First_Name and c.Last_Name=o.Last_Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...