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
customersist die linke Tabelle undordersist 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 SpaltenorderNumberundstatusNULL.,
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 JOINgibt alle Mitarbeiter und Kunden, die jeden Mitarbeiter vertreten oderNULLwenn der Mitarbeiter nicht verantwortlich für jeden Kunden. - Die zweite
LEFT JOINgibt Zahlungen jedes Kunden zurück, der von einem Mitarbeiter repräsentiert wird, oderNULLwenn 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 orderDetailsabzufragen. Die Abfrage gibt die Bestellung und ihre Positionen der Bestellnummer 10123zurü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 ONKlausel 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