2012-06-28 3 views
1

Этот запросSQL запрос оставил присоединиться на MySQL против БД MS-Access

SELECT * 
FROM tblContracts 
LEFT JOIN tblPartys ON tblContracts.id = tblPartys.Contract_id 
INNER JOIN tblAdministrators 
     ON tblContracts.AdministratorID = tblAdministrators.ID 

работает на базе данных MySQL, но она не работает на Access DB !!!

Я получаю этот удар ошибки:

System.Data.OleDb.OleDbException: ошибка синтаксиса (отсутствующий оператор) в выражении запроса «tblContracts.id = tblPartys.Contract_id INNER JOIN tblAdministrators ON tblContracts. AdministratorID = tblAdministrators.I '. на System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling (OleDbHResult ч) при System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult (tagDBPARAMS dbParams, объект & executeResult) в System.Data.OleDb.OleDbCommand.ExecuteCommandText (Object & executeResult) при System.Data.OleDb.OleDbCommand.ExecuteCommand (CommandBehavior поведение, объект & executeResult) в System.Data.OleDb.OleDbCommand.ExecuteReaderInternal (CommandBehavior поведения, метод String) в System.Data.OleDb. OleDbCommand.ExecuteReader (поведение CommandBehavior)

+0

Вы также должны указать код, который вы выполняете в отношении базы данных. – Jake1164

ответ

1

Try добавить пару скобок вокруг первой присоединиться

SELECT * 
FROM (tblContracts 
LEFT JOIN tblPartys ON tblContracts.id = tblPartys.Contract_id) 
INNER JOIN tblAdministrators 
     ON tblContracts.AdministratorID = tblAdministrators.ID 
0

От ошибки вы в курсе, вы miswrite ON tblContracts.AdministratorID = tblAdministrators.ID в ON tblContracts.AdministratorID = tblAdministrators.I как пояснено:

Синтаксическая ошибка (отсутствующий оператор) в выражении запроса «tblContracts.id = tblPartys.Contract_id INNER JOIN tblAdministrators НА tblContracts.AdministratorID = tblAdministrators.I '. на ...

Поэтому необходимо убедиться, что она написана как ON tblContracts.AdministratorID = tblAdministrators.ID

0

Попробуйте это:

SELECT * FROM ((tblContracts 
    LEFT JOIN tblPartys ON tblContracts.id = tblPartys.Contract_id) 
    INNER JOIN tblAdministrators ON tblContracts.AdministratorID = tblAdministrators.ID) 

По моему опыту, Access любит круглые скобки ... слишком много, если вы спросите меня.

Смежные вопросы