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

标签 sql database ms-access

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

我已经尝试了相同基本查询的多个版本,但总是收到相同的错误消息:

Operation must use an updateable query.

关于为什么这个查询在 Access DB 中不起作用的任何想法?

UPDATE inventoryDetails as idet
SET idet.itemDesc = 
(
    SELECT bomItemDesc
    FROM BOM_TEMPLATES as bt
    WHERE bt.bomModelNumber = idet.modelNumber
)

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

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

...不过仍然出现同样的错误。

最佳答案

你必须使用连接

UPDATE inventoryDetails 
INNER JOIN BOM_TEMPLATES ON inventoryDetails.modelNumber = BOM_TEMPLATES.bomModelNumber 
SET inventoryDetails.itemDesc = [bomItemDesc];

关于sql - Access DB 使用另一个表的值更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787186/

相关文章:

java - 在mybatis中传递数据库名称

sql-server - 如何以编程方式创建 DSN?

sql-server - 奇怪的 'returned data that does not match expected data length for column' 错误,而预期的长度要大得多 - SQL SERVER 2012

java - 如何使用java跟踪MS Access数据库的每个操作

mysql - SQL 删除命令

python - Django 使用表达式聚合查询

php - 自动提交与单一事务(小项目与大项目)

php - 从数据库中旋转图像并保存到数据库 blob 类型

mysql - Rails 检查是否可以删除具有外键约束的对象

php - 更新 mySQL 数据库时出现问题