2013-04-16 40 views
1

在MS Access中嘗試了下面的SQL,但似乎無法讓它工作,任何人都有更好的主意?MS Access中括號中的問題SQL內部連接

SELECT top 4 Student.STUDENT_DEGREE, Student.STUDENT_SEX,STUDENT_GROUP_ID,STUDENT_GROUP_ID2,RESULT_MARK 
FROM (((Student) 
INNER JOIN Result ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID) 
INNER JOIN Group ON RESULT_GROUP_ID = GROUP_ID) 
where STUDENT_GROUP_ID <> '' 
order by Result.RESULT_MARK desc; 

每當我運行此我剛剛得到的錯誤:

語法錯誤在FROM子句

回答

2

刪除多餘的括號周圍Student

SELECT top 4 Student.STUDENT_DEGREE,Student.STUDENT_SEX,STUDENT_GROUP_ID,STUDENT_GROUP_ID2,RESULT_MARK 
FROM ((Student 
INNER JOIN Result ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID) 
INNER JOIN Group ON RESULT_GROUP_ID = GROUP_ID) 
where STUDENT_GROUP_ID <> '' 
order by Result.RESULT_MARK desc; 
5

Groupreserved word 。將該名稱括在方括號中以避免混淆數據庫引擎。您也可以爲表名稱分配一個別名。

FROM 
    (Student 
    INNER JOIN Result 
    ON Student.STUDENT_ID=Result.RESULT_STUDENT_ID) 
    INNER JOIN [Group] AS g 
    ON Result.RESULT_GROUP_ID = g.GROUP_ID 

我不得不猜測哪些表包含最後ON子句中的那些字段。如果您在Access查詢設計器的Design View中設置連接,它將幫助您正確地獲取名稱。它還會爲任何包含多個連接的查詢添加數據庫引擎所需的括號。

還要限定您的SELECT列表中以及查詢中其他位置的字段名稱的表格來源。這裏再一次,查詢設計人員可以爲您提供正確的名稱。