MySQLs NOT IN
-Operator: Vermeidung von Syntaxfehlern bei der Auswahl eindeutiger Zeilen
Viele Benutzer stoßen auf Syntaxfehler, wenn sie den NOT IN
-Operator von MySQL verwenden, um Zeilen abzurufen, in denen ein Spaltenwert nicht in einer anderen Tabelle gefunden wird. Obwohl MySQL NOT IN
unterstützt, ist die Syntax entscheidend.
Die Abfrage:
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>
ist falsch und führt zu einem Syntaxfehler. Die korrekte Syntax erfordert eine Unterabfrage:
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>
Durch die Verwendung von Klammern zum Einschließen von (SELECT principal FROM Table2)
erstellen Sie eine Unterabfrage. MySQL interpretiert dies dann korrekt als eine Reihe von Werten zum Vergleich mit Table1.principal
. Diese überarbeitete Abfrage gibt effizient alle Zeilen von Table1
zurück, in denen der Wert principal
in den Ergebnissen der Unterabfrage fehlt. Dadurch wird der Syntaxfehler behoben und die erwarteten Ergebnisse geliefert.
Das obige ist der detaillierte Inhalt vonWie verwende ich „NOT IN' korrekt, um unterschiedliche Zeilen in MySQL abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!