Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie mit der Klausel PostgreSQL LEFT JOIN
Daten aus mehreren Tabellen auswählen.
Einführung in die PostgreSQL LEFT JOIN Klausel
Angenommen, Sie haben zwei Tabellen: A
und B
.,
Jede Zeile in der Tabelle A
kann Null oder viele entsprechende Zeilen in der Tabelle haben B
während jede Zeile in der Tabelle B
hat eine und nur eine entsprechende Zeile in der Tabelle A
.
Um Daten aus der Tabelle A
auszuwählen , die möglicherweise entsprechende Zeilen in der Tabelle enthalten B
, verwenden Sie die Klausel LEFT JOIN
.,
Die folgende Anweisung veranschaulicht die LEFT JOIN
Syntax, die die Tabelle verbindet A
mit der Tabelle B
:
Code language: SQL (Structured Query Language) (sql)
Um der Tabelle beizutreten A
mit der Tabelle B
Tabelle Mit einem linken Join führen Sie folgende Schritte aus:
- Geben Sie zunächst die Spalten in beiden Tabellen an, aus denen Sie Daten in der Klausel
SELECT
auswählen möchten. - Geben Sie zweitens die linke Tabelle (table
A
) in der KlauselFROM
an., - Geben Sie drittens die richtige Tabelle (table
B
) in derLEFT JOIN
– Klausel und die Join-Bedingung nach dem SchlüsselwortON
an.
DieLEFT JOIN
– Klausel beginnt mit der Auswahl von Daten aus der linken Tabelle. Für jede Zeile in der linken Tabelle wird der Wert in der Spalte pka
mit dem Wert jeder Zeile in der Spalte fka
in der rechten Tabelle verglichen.,
Wenn diese Werte gleich sind, erstellt die linke Join-Klausel eine neue Zeile, die Spalten enthält, die in der SELECT
– Klausel angezeigt werden, und fügt diese Zeile der Ergebnismenge hinzu.
Falls diese Werte nicht gleich sind, erstellt die left join-Klausel auch eine neue Zeile, die Spalten enthält, die in der SELECT
– Klausel angezeigt werden. Außerdem werden die Spalten, die aus der rechten Tabelle stammen, mit NULL gefüllt.,
Das folgende Venn-Diagramm veranschaulicht, wie die LEFT JOIN
– Klausel funktioniert:
Beachten Sie, dass die LEFT JOIN
auch als LEFT OUTER JOIN
.
PostgreSQL LEFT JOIN examples
Schauen wir uns die folgendenfilm
undinventory
Tabellen aus der Beispieldatenbank an.,
Jede Zeile in der film
Tabelle kann null oder viele Zeilen in der inventory
Tabelle. Jede Zeile in der Tabelle inventory
hat eine und nur eine Zeile in der Tabelle film
.
Die Spalte film_id
stellt die Verbindung zwischen den Tabellen film
und inventory
her.,
Die folgende Anweisung verwendet die LEFT JOIN
Klausel, um film
Tabelle mit der inventory
Tabelle:
Wenn eine Zeile aus der Tabelle film
in der Tabelle inventory
keine übereinstimmende Zeile enthält, lautet der Wert der Spalte inventory_id
dieser Zeile NULL
.,
Die folgende Anweisung fügt eine WHERE
– Klausel hinzu, um die Filme zu finden, die nicht im Inventar enthalten sind:
Die folgende Anweisung gibt das gleiche Ergebnis zurück., Der Unterschied besteht darin, dass die Tabellenaliase verwendet werden, um die Abfrage prägnanter zu gestalten:
Wenn beide Tabellen denselben Spaltennamen haben, der in der ON
Klausel verwendet wird, können Sie die USING
div> Syntax wie folgt:
Diese Technik ist nützlich, wenn Sie Zeilen aus einer Tabelle auswählen möchten, die keine übereinstimmenden Zeilen in einer anderen Tabelle enthalten.