Обновление одной таблицы на основе нескольких таблиц - похоже, работает MySql не ACCESS 2003 - PullRequest
1 голос
/ 20 мая 2011

Mysql Version Works

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 (выше) и не удается получить доступ 2003 (ниже). Один или оба из 2 нестандартных sql? У 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 )

Сообщение об ошибке Операция должна использовать и обновляемый запрос

Спасибо

1 Ответ

1 голос
/ 20 мая 2011

В 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   

(может потребоваться изменить условия соединения; я не знаком с вашей схемой)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...