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 & "'"