SQL LEFT JOIN (Deutsch)
Zusammenfassung: In diesem Tutorial stellen wir Ihnen eine andere Art von Joins namens SQL LEFT JOIN vor, mit der Sie Daten aus mehreren Tabellen abrufen können.
Einführung in die SQL LEFT JOIN-Klausel
Im vorherigen Tutorial haben Sie etwas über den inneren Join gelernt, der Zeilen zurückgibt, wenn in beiden Tabellen mindestens eine Zeile vorhanden ist, die der Join-Bedingung entspricht. Die inner join Klausel eliminiert die Zeilen, die nicht mit einer Zeile der anderen Tabelle übereinstimmen.,
Der linke Join gibt jedoch alle Zeilen aus der linken Tabelle zurück, unabhängig davon, ob in der rechten Tabelle eine übereinstimmende Zeile vorhanden ist oder nicht.
Angenommen, wir haben zwei Tabellen A und B. Die Tabelle A hat vier Zeilen 1, 2, 3 und 4. Die Tabelle B hat auch vier Zeilen 3, 4, 5, 6.
Wenn wir Tabelle A mit Tabelle B verbinden, sind alle Zeilen in Tabelle A (der linken Tabelle) in der Ergebnismenge enthalten, unabhängig davon, ob in der Tabelle B eine übereinstimmende Zeile vorhanden ist oder nicht.
In SQL, verwenden wir die folgende syntax, um join-Tabelle A mit Tabelle B.,
Die LINKE JOIN-Klausel erscheint nach der FROM-Klausel. Die Bedingung, die dem Schlüsselwort ON folgt, heißt join condition B.n = A.n
SQL LEFT JOIN examples
SQL LEFT JOIN two tables examples
Schauen wir uns die Tabellen countries
und locations
an.
Jeder Standort gehört zu einem und nur einem Land, während jedes Land null oder mehr Standorte haben kann., Die Beziehung zwischen den Tabellen „Länder“ und „Standorte“ ist eins zu viele.
Die Spalte country_id in der Tabelle locations ist der Fremdschlüssel, der mit der Spalte country_id in der Tabelle country_id verknüpft ist.
Um die Ländernamen der USA, Großbritanniens und Chinas abzufragen, verwenden Sie die folgende Anweisung.,0bc“>
Siehe es in Aktion
Die folgende Abfrage ruft die Standorte in den USA, Großbritannien und China ab:
Siehe es in Aktion
Jetzt Verwenden wir die LINKE JOIN-Klausel, um die Ländertabelle mit der Tabelle locations als folgende Abfrage zu verbinden:
Siehe sie in Aktion
Die Bedingung in der WHERE-Klausel wird angewendet, sodass die Anweisung nur die Daten aus den Zeilen USA, Großbritannien und China abruft.,
Da wir die LEFT JOIN-Klausel verwenden, sind alle Zeilen, die die Bedingung in der WHERE-Klausel der countries-Tabelle erfüllen, in der Ergebnismenge enthalten.
Für jede Zeile in der Ländertabelle findet die LINKE JOIN-Klausel die übereinstimmenden Zeilen in der Tabelle locations.
Wenn mindestens eine übereinstimmende Zeile gefunden wurde, kombiniert das Datenbankmodul die Daten aus Spalten der übereinstimmenden Zeilen in beiden Tabellen.
Falls keine übereinstimmende Zeile gefunden wird, z. B. mit der country_id CN, wird die Zeile in der Tabelle countries in die Ergebnismenge aufgenommen und die Zeile in der Tabelle locations mit Nullwerten gefüllt.,
Da nicht übereinstimmende Zeilen in der rechten Tabelle mit den Nullwerten gefüllt sind, können Sie die LEFT JOIN-Klausel anwenden, um Zeilen zwischen Tabellen nicht übereinzustimmen.
Um beispielsweise das Land zu finden, das keine Standorte in der Tabelle locations hat, verwenden Sie die folgende Abfrage:
Sehen Sie es in Aktion
SQL LEFT JOIN 3 tables exampleSiehe die folgenden Tabellen: Regionen, Länder und Standorte.,
Eine Region kann null oder viele Länder haben, während sich jedes Land in der einen Region befindet. Die Beziehung zwischen Ländern und Regionen Tabellen ist eins-zu-viele. Die Spalte region_id in der Tabelle countries ist die Verknüpfung zwischen der Tabelle countries und regions.,
Die folgende Anweisung zeigt, wie 3 Tabellen zu verbinden: Regionen, Länder und Standorte:
Siehe es in Aktion
Nun sollten Sie ein gutes Verständnis davon haben, wie die SQL LEFT JOIN-Klausel funktioniert und wissen, wie die linke JOIN-Klausel anzuwenden, um Daten aus mehreren Tabellen abzufragen.
- War dieses tutorial hilfreich ?
- YesNo