Heim > Datenbank > MySQL-Tutorial > Warum schlägt meine MySQL-Abfrage „NOT IN' fehl und wie kann ich das Problem beheben?

Warum schlägt meine MySQL-Abfrage „NOT IN' fehl und wie kann ich das Problem beheben?

Linda Hamilton
Freigeben: 2025-01-13 14:12:43
Original
120 Leute haben es durchsucht

Why is My MySQL

Fehlerbehebung bei einem MySQL-Abfragefehler „NOT IN“

Ein Benutzer ist kürzlich beim Versuch einer scheinbar einfachen MySQL-Abfrage auf einen Syntaxfehler gestoßen. Das Ziel bestand darin, alle Zeilen aus Table1 auszuwählen, in denen der Spaltenwert principal in Table2 nicht vorhanden ist. Die ursprüngliche, falsche Abfrage lautete:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>
Nach dem Login kopieren

Dadurch wurde ein Fehler generiert, der den Benutzer aufgrund widersprüchlicher Online-Ratschläge zu der Annahme veranlasste, dass MySQL NOT IN-Klauseln möglicherweise nicht unterstützt. Einige Quellen schlugen komplexe Problemumgehungen vor.

MySQL unterstützt zwar NOT IN, aber die oben verwendete Syntax war fehlerhaft. Die korrekte Syntax erfordert eine Unterabfrage:

<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>
Nach dem Login kopieren

Diese überarbeitete Abfrage verwendet eine Unterabfrage (SELECT principal FROM Table2), um den Satz von principal-Werten aus Table2 explizit zu definieren. MySQL vergleicht dann jeden Table1.principal-Wert korrekt mit diesem Satz und gibt nur Zeilen zurück, in denen keine Übereinstimmung gefunden wird.

Der ursprüngliche Fehler resultierte ausschließlich aus einer falschen Anwendung des NOT IN-Operators. Die Einbeziehung der Unterabfrage stellt die notwendige Struktur für die Datenbank bereit, um die Abfrage erfolgreich auszuführen und die erwarteten Ergebnisse zu liefern.

Das obige ist der detaillierte Inhalt vonWarum schlägt meine MySQL-Abfrage „NOT IN' fehl und wie kann ich das Problem beheben?. 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