Access DB使用另一个表的值更新一个表

m42*_*m42 8 sql database ms-access

我正在尝试使用另一个表中找到的值更新一个表中的所有记录.

我已经尝试了相同基本查询的许多版本,并始终得到相同的错误消息:

操作必须使用可更新的查询.

有关为什么此查询无法在Access DB中工作的任何想法?

UPDATE inventoryDetails as idet
SET idet.itemDesc = 
(
    SELECT bomItemDesc
    FROM BOM_TEMPLATES as bt
    WHERE bt.bomModelNumber = idet.modelNumber
)
Run Code Online (Sandbox Code Playgroud)

也试过这个,因为我意识到,因为第二个表有每个型号的多个型号记录 - 我只需要为每个型号找到的第一个记录中的第一个描述.

UPDATE inventoryDetails as idet
SET idet.item_desc = 
(
    SELECT TOP 1 bomItemDescription 
    FROM BOM_TEMPLATES as bt
    WHERE bt.bomModelNumber = idet.modelNumber
)
Run Code Online (Sandbox Code Playgroud)

......但仍然得到同样的错误.

DJ.*_*DJ. 15

你必须使用连接

UPDATE inventoryDetails 
INNER JOIN BOM_TEMPLATES ON inventoryDetails.modelNumber = BOM_TEMPLATES.bomModelNumber 
SET inventoryDetails.itemDesc = [bomItemDesc];
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我想我正在做UPDATE,SET,INNER JOIN(按此顺序). (2认同)