When I had only one inner join in my SQL statement, it worked perfectly. I tried joining a second table, and now I am getting an error that says there is a syntax error (missing operator). What is wrong here?
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 & "'"
For multi-table joins, you have to nest the extra joins in brackets:
SELECT ... FROM ((origintable JOIN jointable1 ON ...) JOIN jointable2 ON ...) JOIN jointable3 ON ...
basically, for every extra table you join past the first, you need a bracket before the original 'FROM' table, and a closing bracket on the matching JOIN 'on' clause.
MS Access (specifically, Jet/ACE) requires parentheses with multiple joins. Try:
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 & "'"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With