Zusammenfassung: In diesem Tutorial erfahren Sie mehr über die MySQL LEFT JOIN
– Klausel und wie Sie sie anwenden, um Daten aus zwei oder mehr Tabellen abzufragen.
Einführung in MySQL LEFT JOIN
Mit der LEFT JOIN
können Sie Daten aus zwei oder mehr Tabellen abfragen. Ähnlich wie dieINNER JOIN
Klausel ist dieLEFT JOIN
eine optionale Klausel derSELECT
Anweisung, die unmittelbar nach derFROM
Klausel erscheint.,
Angenommen, Sie möchten zwei Tabellen verbinden t1
und t2
.
Die folgende Anweisung zeigt, wie die Klausel LEFT JOIN
zum Verbinden der beiden Tabellen verwendet wird:
Code language: SQL (Structured Query Language) (sql)
Wenn Sie die Klausel LEFT JOIN
verwenden, werden die Konzepte der linken Tabelle und der rechten Tabelle eingeführt.
In der obigen Syntax ist t1
die linke Tabelle und t2
die rechte Tabelle.,
DieLEFT JOIN
– Klausel wählt Daten aus der linken Tabelle aus (t1
). Es entspricht jeder Zeile aus der linken Tabelle (t1
) mit jeder Zeile aus der rechten Tabelle (t2
) basierend auf der join_condition
.
Wenn die Zeilen aus beiden Tabellen dazu führen, dass die Join-Bedingung zu TRUE
ausgewertet wird, kombiniert die LEFT JOIN
Spalten von Zeilen aus beiden Tabellen zu einer neuen Zeile und schließt diese neue Zeile in die Ergebniszeilen ein.,
Falls die Zeile aus der linken Tabelle (t1
) nicht mit einer Zeile aus der rechten Tabelle übereinstimmt (t2
), kombiniert die LEFT JOIN
weiterhin Zeilenspalten aus beiden Tabellen zu einer neuen Zeile und fügt die neue Zeile in die Ergebniszeilen ein. Es wird jedoch NULL
für alle Spalten der Zeile aus der rechten Tabelle verwendet.
Mit anderen Worten, LEFT JOIN
gibt alle Zeilen aus der linken Tabelle zurück, unabhängig davon, ob eine Zeile aus der linken Tabelle eine übereinstimmende Zeile aus der rechten Tabelle enthält oder nicht., Wenn keine Übereinstimmung vorliegt, enthalten die Spalten der Zeile aus der rechten Tabelle NULL
.
Das folgende Venn – Diagramm hilft Ihnen bei der Visualisierung der Funktionsweise der LEFT JOIN
– Klausel:
MySQL LINKS JOIN Beispiele
Nehmen wir einige Beispiele für die Verwendung der LEFT JOIN
Klausel.,
1) Verwenden der MySQL LEFT JOIN-Klausel zum Verbinden von zwei Tabellen
Siehe die folgenden Tabellen customers
und orders
in der Beispieldatenbank.
Jeder Kunde kann null oder mehr Bestellungen haben, während jede Bestellung einem Kunden gehören muss.,
Diese Abfrage verwendet die Klausel LEFT JOIN
, um alle Kunden und ihre Bestellungen zu finden:
Code language: SQL (Structured Query Language) (sql)
Alternativ können Sie einige Eingaben mithilfe von Tabellenaliasen speichern:
Code language: SQL (Structured Query Language) (sql)
In diesem Beispiel:
- Die
customers
ist die linke Tabelle undorders
ist die rechte Tabelle. - Die
LEFT JOIN
– Klausel gibt alle Kunden zurück, einschließlich der Kunden, die keine Bestellung haben., Wenn ein Kunde keine Bestellung hat, sind die Werte in den SpaltenorderNumber
undstatus
NULL
.,
Da sowohl Tabellenkunden als auch Bestellungen in der Join-Bedingung mit dem Gleichheitsoperator denselben Spaltennamen haben ( customerNumber
), können Sie die folgende Syntax verwenden:
Code language: SQL (Structured Query Language) (sql)
Die folgenden Klauseln sind äquivalent:
Code language: SQL (Structured Query Language) (sql)
Und
Code language: SQL (Structured Query Language) (sql)
Wenn Sie die LEFT JOIN
Klausel durch die INNER JOIN
Klausel ersetzen, erhalten Sie die einzigen Kunden, die mindestens eine Bestellung haben.,
2) Verwenden der MySQL LEFT JOIN-Klausel zum Suchen nicht übereinstimmender Zeilen
Die LEFT JOIN
– Klausel ist sehr nützlich, wenn Sie Zeilen in einer Tabelle finden möchten, die keine übereinstimmende Zeile aus einer anderen Tabelle enthält.,“> um Kunden zu finden, die keine Bestellung haben:
Code language: SQL (Structured Query Language) (sql)
3) Verwenden von MySQL LEFT JOIN zum Verbinden von drei Tabellen
Siehe die folgenden drei Tabellen employees
, customers
und payments
:
Dieses Beispiel verwendet zwei LEFT JOIN
Klauseln, um die drei Tabellen zu verbinden: employees
, customers
und payments
.,
Code language: SQL (Structured Query Language) (sql)
Dieses Bild zeigt die teilweise Ausgabe:
Wie es funktioniert.
- Die erste
LEFT JOIN
gibt alle Mitarbeiter und Kunden, die jeden Mitarbeiter vertreten oderNULL
wenn der Mitarbeiter nicht verantwortlich für jeden Kunden. - Die zweite
LEFT JOIN
gibt Zahlungen jedes Kunden zurück, der von einem Mitarbeiter repräsentiert wird, oderNULL
wenn der Kunde keine Zahlung hat.
Bedingung in WHERE Klausel vs., AUF Klausel
Siehe das folgende Beispiel.
Code language: SQL (Structured Query Language) (sql)
In diesem Beispiel wurde die Klausel LEFT JOIN
verwendet, um Daten aus den Tabellen orders
und orderDetails
abzufragen. Die Abfrage gibt die Bestellung und ihre Positionen der Bestellnummer 10123
zurück.,
Wenn Sie die Bedingung jedoch von der WHERE
Klausel in die ON
Klausel verschieben:
Es wird eine andere Bedeutung haben.,
In diesem Fall gibt die Abfrage alle Bestellungen zurück, aber nur die Reihenfolge 10123
ist wie im folgenden Bild mit Zeilenelementen verknüpft:
Beachten Sie, dass für INNER JOIN
div>Klausel, die Bedingung in der ON
Klausel entspricht der Bedingung in der WHERE
Klausel.
In diesem tutorial haben Sie gelernt, wie Sie mit der MySQL LEFT JOIN
– Klausel-join-Daten aus zwei oder mehr Tabellen.,
- War dieses tutorial hilfreich?
- YesNo