2012-06-28 83 views
1

此查詢sql查詢左連接mysql的VS MS-Access數據庫

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

作品上的MySQL數據庫,但它並沒有對Access數據庫工作!

我收到此錯誤的打擊:

System.Data.OleDb.OleDbException:在 查詢表達式「tblContracts.id = tblPartys.Contract_id語法錯誤(缺少操作員)INNER JOIN tblAdministrators ON tblContracts。 AdministratorID = tblAdministrators.I'。在在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult 小時)在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(對象&(tagDBPARAMS dbParams,對象&的ExecuteReuslt) 的ExecuteReuslt)在 System.Data.OleDb.OleDbCommand.ExecuteCommand(的CommandBehavior 行爲,在 System.Data.OleDb對象在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(的CommandBehavior 行爲,字符串方法)&的ExecuteReuslt)。 OleDbCommand.ExecuteReader(CommandBehavior行爲)

+0

您還應該包含您對數據庫執行的代碼。 – Jake1164

回答

1

嘗試添加一對夫婦括號圍繞首次加入

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.IDON tblContracts.AdministratorID = tblAdministrators.I所解釋:

語法錯誤(缺少操作者)在查詢表達式「tblContracts.id = tblPartys.Contract_id INNER JOIN tblAdministrators ON 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喜歡括號......太多了。