Heim >Datenbank >MySQL-Tutorial >Wann sind LEFT JOIN- und RIGHT JOIN-Abfragen in SQL austauschbar?
SQLs LEFT JOIN
und RIGHT JOIN
: Wann sind sie gleichwertig?
LEFT JOIN
und RIGHT JOIN
in SQL führen Zeilen aus zwei Tabellen basierend auf übereinstimmenden Werten zusammen. Obwohl sie funktional ähnlich sind, gibt es einen wesentlichen Unterschied.
Lassen Sie uns veranschaulichen:
<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10)); CREATE TABLE Table2 (id INT, Name VARCHAR(10)); INSERT INTO Table1 (id, Name) VALUES (1, 'A'), (2, 'B'); INSERT INTO Table2 (id, Name) VALUES (1, 'A'), (2, 'B'), (3, 'C');</code>
Diese Abfragen:
<code class="language-sql">SELECT * FROM Table1 LEFT JOIN Table2 ON Table1.id = Table2.id; SELECT * FROM Table2 RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
erzielen identische Ergebnisse. Beide gleichen Zeilen von Table1
mit entsprechenden Zeilen in Table2
ab, indem Sie das Feld id
verwenden. LEFT JOIN
schließt alle Zeilen von Table1
ein, während RIGHT JOIN
dasselbe für Table2
tut.
Bedenken Sie jedoch Folgendes:
<code class="language-sql">SELECT * FROM Table2 LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
oder das Äquivalent:
<code class="language-sql">SELECT * FROM Table1 RIGHT JOIN Table2 ON Table1.id = Table2.id;</code>
Die Ausgabe ist unterschiedlich. Dies gibt alle Zeilen von Table2
sowie alle passenden Zeilen von Table1
zurück. Dies ist ein „äußerer Join“, bei dem Zeilen aus einer Tabelle einbezogen werden, auch wenn in der anderen keine Übereinstimmungen vorhanden sind. Der Schlüssel liegt darin, dass die Bezeichnung links oder rechts vorgibt, welche Tabellenzeilen garantiert vollständig in die Ergebnismenge einbezogen werden, unabhängig von übereinstimmenden Zeilen in der anderen Tabelle. Daher führt ein einfacher Austausch von Tabellen in der Abfrage nicht immer zum gleichen Ergebnis. Die Austauschbarkeit hängt ganz von den Daten und dem gewünschten Ergebnis ab.
Das obige ist der detaillierte Inhalt vonWann sind LEFT JOIN- und RIGHT JOIN-Abfragen in SQL austauschbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!