SQL 多表連線語法錯誤
當 SQL 語句包含多個 INNER JOIN
運算時,除了第一個 JOIN
子句之外的所有 JOIN
子句都必須用括號括起來,以避免語法錯誤。
問題描述:
一個以前只有一個 INNER JOIN
的 SQL 語句,在加入第二個表連接後拋出語法錯誤。語句如下:
<code class="language-sql">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 & "'"</code>
解:
為了解決此錯誤,必須將額外的 JOIN
子句括在括號中。更正後的語句如下:
<code class="language-sql">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 & "'"</code>
解釋:
對於多表連接,每個額外的 JOIN
運算都必須用括號括起來。這確保了正確的運算子優先順序並防止語法錯誤。最內層的 JOIN
先執行,然後是下一個外層的 JOIN
,依此類推,直到到達原始的 FROM
表。
遵守此語法,可以正確執行 SQL 語句中的多表連接。
以上是為什麼多個 SQL INNER JOIN 需要括號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!