Heim > Datenbank > MySQL-Tutorial > Wann sind LEFT JOIN und RIGHT JOIN wirklich austauschbar?

Wann sind LEFT JOIN und RIGHT JOIN wirklich austauschbar?

Susan Sarandon
Freigeben: 2025-01-14 15:51:44
Original
223 Leute haben es durchsucht

When Are LEFT JOIN and RIGHT JOIN Truly Interchangeable?

Die subtilen Unterschiede zwischen LEFT JOIN und RIGHT JOIN verstehen

Während LEFT JOIN und RIGHT JOIN bei Verwendung derselben Join-Bedingung austauschbar erscheinen, unterscheidet sich ihr Verhalten je nach Reihenfolge der Tabellen in der Abfrage erheblich. Lassen Sie uns dies anhand eines Beispiels untersuchen.

Betrachten Sie zwei Tabellen:

<code class="language-sql">CREATE TABLE Table1 (id INT, Name VARCHAR(10));
CREATE TABLE Table2 (id INT, Name VARCHAR(10));</code>
Nach dem Login kopieren

Mit folgenden Daten gefüllt:

Table1 Table2
Id Name Id
1 A 1
2 B 2
3

Beim Verbinden mit Table1.id = Table2.id sind die Ergebnisse von LEFT JOIN und RIGHT JOIN tatsächlich identisch:

<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>
Nach dem Login kopieren

Das liegt daran, dass die Join-Bedingung symmetrisch ist. Die Illusion der Austauschbarkeit bricht jedoch zusammen, wenn die Tischreihenfolge umgekehrt wird.

Der Einfluss der Tischbestellung

Beobachten Sie die folgende Abfrage:

<code class="language-sql">SELECT *
FROM Table2
LEFT JOIN Table1 ON Table1.id = Table2.id;</code>
Nach dem Login kopieren

Dies gibt alle Zeilen von Table2 zurück, unabhängig von einer Übereinstimmung in Table1. Die Ergebnismenge wäre:

Table2 Table1
Id Name Id
1 A 1
2 B 2
3 C

Umgekehrt ein RIGHT JOIN mit umgekehrter Tabellenreihenfolge:

<code class="language-sql">SELECT *
FROM Table2
RIGHT JOIN Table1 ON Table1.id = Table2.id;</code>
Nach dem Login kopieren

Dies umfasst nur Zeilen aus Table2, die eine passende Zeile in Table1 haben. Die Zeile mit id = 3 in Table2 würde ausgeschlossen.

Auch wenn die Join-Bedingung symmetrisch erscheinen mag, bestimmt die Wahl zwischen LEFT JOIN und RIGHT JOIN sowie die Reihenfolge der Tabellen grundsätzlich, welche Tabellenzeilen garantiert in die endgültige Ergebnismenge aufgenommen werden, selbst wenn dies der Fall ist Keine Übereinstimmung in der anderen Tabelle. Überlegen Sie sich immer sorgfältig die Tischreihenfolge, um sicherzustellen, dass Sie die erwarteten Ergebnisse erzielen.

Das obige ist der detaillierte Inhalt vonWann sind LEFT JOIN und RIGHT JOIN wirklich austauschbar?. 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