Heim >Datenbank >MySQL-Tutorial >SQL JOIN: WHERE vs. ON: Was ist der Hauptunterschied beim Filtern verbundener Daten?
SQL JOIN: WHERE- und ON-Klauseln verstehen
Um SQL JOINs zu beherrschen, ist ein klares Verständnis der WHERE
- und ON
-Klauseln erforderlich. Obwohl sie manchmal austauschbar sind, unterscheiden sich ihre Funktionen erheblich.
WHERE
Klausel: Post-Join-Filterung
Die WHERE
-Klausel filtert die Ergebnisse eines Joins. Betrachten Sie dieses Beispiel:
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID WHERE Orders.ID = 12345;</code>
Hier filtert die WHERE
-Klausel die Ausgabe und zeigt nur Zeilen an, in denen Orders.ID
12345 ist. Dies gilt nachdem das LEFT JOIN
Daten aus Orders
und OrderLines
kombiniert hat.
ON
Klausel: Definition der Join-Bedingung
Die ON
-Klausel definiert die Join-Bedingung selbst. Beachten Sie:
<code class="language-sql">SELECT * FROM Orders LEFT JOIN OrderLines ON OrderLines.OrderID = Orders.ID AND Orders.ID = 12345;</code>
Die ON
-Klausel schreibt vor, dass nur Zeilen in den Join einbezogen werden, in denen OrderLines.OrderID
mit Orders.ID
übereinstimmt und Orders.ID
12345 entspricht. Diese Filterung erfolgt währenddes Beitrittsprozesses.
Schlüsselsemantische Unterscheidung
Obwohl WHERE
und ON
mit INNER JOIN
s zu ähnlichen Ergebnissen führen könnten, sind ihre semantischen Rollen unterschiedlich. WHERE
filtert den endgültigen verbundenen Datensatz, während ON
bestimmt, welche Zeilen in den Verknüpfungsvorgang einbezogen werden.
Das obige ist der detaillierte Inhalt vonSQL JOIN: WHERE vs. ON: Was ist der Hauptunterschied beim Filtern verbundener Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!