mysql - 基于多个表更新单个表 - 似乎适用于 MySql 而不是 ACCESS 2003

标签 mysql sql ms-access

Mysql 版本工作

UPDATE results SET rCARRIER = (
    SELECT cellCarrierName
    FROM tblImportedTempTable, user, cellCarrier
    WHERE
        userEmployeeNumber = tblImportedTempTable.EMPLOYEENUMBER
        AND userId = results.rUserId
        AND results.rPHONENUMBER = tblImportedTempTable.PHONENUMBER
        AND CARRIER = cellCarrierId )

我编写的这个 sql 在 MySql(上)中运行良好,但在 Access 2003(下)中失败,有什么建议吗? 2个非标准sql中的一个还是两个? Access 是否存在管理问题?

抱歉,字段和表名称不同,这是 ACCESS 版本。

Access 版本

UPDATE tblWorkerPhoneNumber SET tblWorkerPhoneNumber.PhoneCarrier = (
    SELECT PhoneCarrierType.CarrierName
    FROM tblImportedPhoneCarrier, tblWorkerMaster, PhoneCarrierType
    WHERE
        tblWorkerMaster.EmployeeNumber = tblImportedPhoneCarrier.Emp
        AND tblWorkerMaster.WorkerID = tblWorkerPhoneNumber.WorkerID
        AND tblWorkerPhoneNumber.PhoneNumber = tblImportedPhoneCarrier.Cell
        AND tblImportedPhoneCarrier.CarrierCode = PhoneCarrierType.CarrierID )

错误信息 操作必须使用和可更新的查询

谢谢

最佳答案

在 MS Access 中,是这样的:

UPDATE tblWorkerPhoneNumber 
INNER JOIN tblWorkerMaster ON tblWorkerMaster.WorkerID = tblWorkerPhoneNumber.WorkerID  
INNER JOIN tblImportedPhoneCarrier ON tblWorkerPhoneNumber.PhoneNumber = tblImportedPhoneCarrier.Cell   
INNER JOIN PhoneCarrierType ON tblImportedPhoneCarrier.CarrierCode = PhoneCarrierType.CarrierID
SET tblWorkerPhoneNumber.PhoneCarrier = PhoneCarrierType.CarrierName  
WHERE tblWorkerMaster.EmployeeNumber = tblImportedPhoneCarrier.Emp   

(可能需要更改连接条件;我不熟悉您的架构)

关于mysql - 基于多个表更新单个表 - 似乎适用于 MySql 而不是 ACCESS 2003,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066158/

相关文章:

MySQL 或问题

mysql - 如何在 MySQL/iReport 中使用多列连接获得所需的输出?

php - 我的结果页面的最后部分有问题

sql - 需要使用聚合函数提高 SQL 查询的性能

c# - 如何使用 C# 检索给定日期(无论时间)的记录?

MySQL - 在 MySQL UPDATE 或 SELECT 查询中使用 If Then Else

java - 读时删除(添加每条语句删除)最后批量删除好还是单个删除好?

php - 优化已经有重复条目的表

python-2.7 - 缺少使用 python 读取 MS Access 的模块

sql - 动态创建 SQL 查询时出现语法错误