Heim > Datenbank > MySQL-Tutorial > Warum führt das Mischen von JOINs und Kommas in MySQL-Abfragen zu „Unbekannte Spalte'-Fehlern?

Warum führt das Mischen von JOINs und Kommas in MySQL-Abfragen zu „Unbekannte Spalte'-Fehlern?

Barbara Streisand
Freigeben: 2025-01-09 10:46:49
Original
421 Leute haben es durchsucht

Why Does Mixing JOINs and Commas in MySQL Queries Cause

Das Mischen von JOIN und Kommas in MySQL-Abfragen führt zu Fehlern

Problembeschreibung

Beim Ausführen der folgenden MySQL-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>
Nach dem Login kopieren

wird auf den folgenden Fehler stoßen:

<code>#1054 - Unknown column 'm.id' in 'on clause'</code>
Nach dem Login kopieren

Die Abfrage schlägt fehl, obwohl die Spalte vorhanden ist. Dieser Fehler tritt auf, wenn ANSI 1992 JOIN-Syntax und Kommas zusammen in einer Abfrage verwendet werden.

Lösung

Laut der MySQL-Dokumentation sollte das Mischen von JOINs und Kommas vermieden werden. Um dieses Problem zu beheben, ersetzen Sie das Komma durch den entsprechenden JOIN-Operator (CROSS, INNER, LEFT).

Die aktualisierte Abfrage mit INNER JOIN lautet wie folgt:

<code class="language-sql">SELECT m.*, t.*
FROM memebers as m
INNER JOIN telephone as t ON <join condition>
INNER JOIN memeberFunctions as mf ON m.id = mf.memeber AND mf.function = 32
INNER JOIN mitgliedTelephone as mt ON m.id = mt.memeber</code>
Nach dem Login kopieren

Beachten Sie, dass die Verknüpfungsbedingung zwischen m und t angegeben werden sollte, um ein kartesisches Produkt zu vermeiden.

Zusätzliche Hinweise

Aus Gründen der Klarheit und Effizienz sollte der JOIN-Operator anstelle von Kommas verwendet werden. Das Komma weist auf einen CROSS JOIN hin, der zu unerwartetem Verhalten führen kann, insbesondere beim Kombinieren mehrerer Tabellen. Durch die Verwendung expliziter JOIN-Operatoren können Sie spezifische Beziehungen zwischen Tabellen definieren, um sicherzustellen, dass Sie die gewünschten Ergebnisse erhalten.

Das obige ist der detaillierte Inhalt vonWarum führt das Mischen von JOINs und Kommas in MySQL-Abfragen zu „Unbekannte Spalte'-Fehlern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage