Заполните поле значениями PK другой таблицы, используя SQL - PullRequest
0 голосов
/ 30 января 2019

У меня есть таблица Sales с полем VendorName, и я добавил еще одно поле VendorID, которое является FK таблицы Vendors.Как мне заполнить поле VendorID в таблице Sales, чтобы оно вводило соответствующий VendorID, соответствующий VendorName, используя SQL?

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Это должно работать:

UPDATE SALES
INNER JOIN VENDORS ON SALES.VendorName = VENDORS.VendorName
SET SALES.VendorID = VENDORS.VendorID
0 голосов
/ 30 января 2019

Имейте набор результатов (salesID, VendorsID) в CTE или Temptable и используйте его с условием соединения.

;with temp as ( select salesID, VendorsID from sales s join vendors v on s.vendorName =v.vendorName ) update sales set vendorid =t.VendorsID form sales s join temp t on s.salesID =t.salesID

0 голосов
/ 30 января 2019

Вы можете использовать коррелированный подзапрос:

update sales
    set vendorid = (select v.vendorid from vendors as v where v.vendorName = sales.vendorName);
...