SQL多重联接语句

当我在SQL语句中只有一个内部连接时,它工作的很好。 我试图join第二个表,现在我得到一个错误,说有一个语法错误(缺less运营商)。 这里有什么问题?

adsFormView.SelectCommand = "SELECT * FROM [tableCourse] INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] INNER JOIN [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id] WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'" 

对于多表连接,您必须将额外的连接嵌套在括号中:

 SELECT ... FROM ((origintable JOIN jointable1 ON ...) JOIN jointable2 ON ...) JOIN jointable3 ON ... 

基本上,对于每个超过第一个表的附加表,在原来的“FROM”表之前需要一个括号,而在匹配的JOIN“on”子句中需要一个闭括号。

MS Access(特别是Jet / ACE)需要多个连接的括号。 尝试:

 adsFormView.SelectCommand = _ " SELECT * FROM ([tableCourse] " & _ " INNER JOIN [tableGrade] " & _ " ON [tableCourse].[grading] = [tableGrade].[id]) " & _ " INNER JOIN [tableCourseType] " & _ " ON [tableCourse].[course_type] = [tableCourseType].[id] " & _ " WHERE [prefix]='" & myPrefix & "'" & _ " AND [course_number]='" & myCourseNum & "'"