更新 table 并将字段值设置为左连接的结果

Updating table and setting the field values to the result of a left join

我有一个 table 销售字段供应商("Company A"、"Company B"、"Trader X"),并且我单独创建了一个 table 调用具有两个字段的供应商:VendorID 和 VendorName。

我想删除 table Sales 中的 Vendor 字段并将其替换为 VendorID 字段并使用相应的 VendorID 填充该字段。换句话说,用供应商 table.

中的 ID 替换销售 table 中供应商的名称

我尝试了很多解决方案,但它们都不起作用。这是我认为可行的方法。销售 table 中的某些条目没有列出任何供应商。有 203 个条目和左连接,当 运行 单独时,returns 所有 203 个供应商和适当的空值。

Update Sales
Set Sales.VendorID = (Select VendorID From Vendors v Left Join Sales s on 
v.VendorName = s.Vendor);

当我 运行 时,我得到一个对话框询问:

Enter Parameter Value

或者我收到错误消息:

Operation must use an updateable query

我使用的是 MS Access 2016。

我认为你不需要子查询,你可以只使用 UPDATE ... JOIN ... SET 语法,比如 :

UPDATE sales AS s
INNER JOIN Vendors AS v ON v.VendorName = s.Vendor
SET s.VendorID = v.VendorID