SQL-Mehrtabellenverbindungssyntaxfehler
Wenn eine SQL-Anweisung mehrere INNER JOIN
-Operationen enthält, müssen alle JOIN
-Klauseln außer der ersten JOIN
-Klausel in Klammern eingeschlossen werden, um Syntaxfehler zu vermeiden.
Problembeschreibung:
Eine SQL-Anweisung, die zuvor nur einen INNER JOIN
hatte, löst einen Syntaxfehler aus, nachdem ein zweiter Tabellen-Join hinzugefügt wurde. Der Satz lautet wie folgt:
<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>
Lösung:
Um diesen Fehler zu beheben, müssen zusätzliche JOIN
-Klauseln in Klammern eingeschlossen werden. Der korrigierte Satz lautet wie folgt:
<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>
Erklärung:
Bei Mehrtabellen-Joins muss jeder weitere JOIN
-Vorgang in Klammern eingeschlossen werden. Dies stellt die korrekte Operatorpriorität sicher und verhindert Syntaxfehler. Das innerste JOIN
wird zuerst ausgeführt, dann das nächste äußere JOIN
und so weiter, bis die ursprüngliche FROM
-Tabelle erreicht ist.
Durch die Einhaltung dieser Syntax können Multi-Table-Joins in SQL-Anweisungen korrekt ausgeführt werden.
Das obige ist der detaillierte Inhalt vonWarum erfordern mehrere SQL INNER JOINs Klammern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!