Der Grund, warum die gemischte Verwendung der ANSI 1992 JOIN-Syntax und Kommas in MySQL-Abfragen Fehler verursacht
Wenn Sie mehrere Tabellen in einer MySQL-Abfrage verknüpfen, achten Sie darauf, konsequent die ANSI 1992 JOIN-Syntax oder die durch Kommas getrennte Notation zu verwenden. Das Mischen dieser beiden Methoden kann zu Fehlern wie dem Fehler „Unbekannte Spalte „m.id“ in „on-Klausel““ führen.
Fehlergrund
In der folgenden Abfrage:
<code class="language-sql">SELECT m.*, t.* FROM memebers as m, telephone as t INNER JOIN memeberFunctions as mf ON m.id = mf.memeber INNER JOIN mitgliedTelephone as mt ON m.id = mt.memeber WHERE mf.function = 32</code>
Diese Abfrage versucht, eine Mischung aus Komma-Notation (zum Verbinden von m und t) und ANSI 1992 JOIN-Syntax (zum Verbinden von mf und mt) zu verwenden. Laut MySQL-Dokumentation wird diese Methode nicht mehr unterstützt. Der Kommaoperator hat jetzt eine niedrigere Priorität als JOIN, was zu Fehlern bei der Operandeninterpretation führt.
Lösung
Um dieses Problem zu beheben, verwenden Sie konsequent die Komma-Schreibweise oder die ANSI 1992 JOIN-Syntax. Für eine bessere Übersichtlichkeit und Zuverlässigkeit wird die Verwendung der JOIN-Syntax empfohlen:
<code class="language-sql">SELECT m.*, t.* FROM memebers AS m JOIN telephone AS t ON m.id = t.id JOIN memeberFunctions AS mf ON m.id = mf.memeber AND mf.function = 32 JOIN mitgliedTelephone AS mt ON m.id = mt.memeber</code>
Notizen
Das obige ist der detaillierte Inhalt vonWarum führt das Mischen von ANSI 1992-Joins und Kommas in MySQL-Abfragen zu Fehlern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!