Zusammenfassung: In diesem Tutorial erfahren Sie mehr über die SQL Server LEFT JOIN – Klausel und wie Sie damit Daten aus mehreren Tabellen abfragen können.

Einführung in die SQL Server LEFT JOIN Klausel

Mit der LEFT JOIN Klausel können Sie Daten aus mehreren Tabellen abfragen. Es werden alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurückgegeben. Wenn in der rechten Tabelle keine übereinstimmenden Zeilen gefunden wurden, wird NULL verwendet.,

Im Folgenden wird veranschaulicht, wie zwei Tabellen T1 und T2 mit der Klausel LEFT JOIN verknüpft werden:

Code language: SQL (Structured Query Language) (sql)

In dieser Syntax sind T1 und T2 die linke bzw. rechte Tabelle.

Für jede Zeile aus der T1-Tabelle vergleicht die Abfrage sie mit allen Zeilen aus der T2-Tabelle. Wenn ein Zeilenpaar bewirkt, dass das Join-Prädikat TRUE ausgewertet wird, werden die Spaltenwerte aus diesen Zeilen zu einer neuen Zeile kombiniert, die dann in der Ergebnismenge enthalten ist.,

Wenn eine Zeile aus der linken Tabelle (T1) keine übereinstimmende Zeile aus der T2-Tabelle enthält, kombiniert die Abfrage die Spaltenwerte der Zeile aus der linken Tabelle mit NULL für jede Spalte Werte aus der rechten Tabelle.

Kurz gesagt, dieLEFT JOIN – Klausel gibt alle Zeilen aus der linken Tabelle (T1) und übereinstimmende Zeilen oderNULL – Werte aus der rechten Tabelle (T2) zurück.

Im Folgenden wird die LEFT JOIN zweier Tabellen T1(1, 2, 3) und T2(A, B, C) dargestellt., Die LEFT JOIN stimmt Zeilen aus der T1-Tabelle mit den Zeilen aus der T2-Tabelle unter Verwendung von Mustern ab:

In dieser Abbildung stimmt keine Zeile aus der T2-Tabelle mit der Zeile 1 aus der T1-Tabelle überein, daher wird NULL verwendet. Die Zeilen 2 und 3 aus der T1-Tabelle stimmen mit den Zeilen A bzw. B aus der T2-Tabelle überein.,

SQL Server LEFT JOIN example

Siehe die folgenden products und order_items Tabellen:

Jeder Verkaufsauftrag enthält ein Produkt. Die Verbindung zwischen order_items und products Tabellen ist die product_id Spalte.,

Die folgende Anweisung verwendet die LEFT JOIN – Klausel, um Daten aus den Tabellen products und order_items abzufragen:

Eine Liste von NULL in der Spalte order_id zeigt an, dass die entsprechenden Produkte noch nicht an einen Kunden verkauft wurden.

Es ist möglich, die WHERE Klausel zu verwenden, um die Ergebnismenge zu begrenzen., Die folgende Abfrage gibt die Produkte zurück, die in keinem Kundenauftrag erscheinen:

Wie immer verarbeitet SQL Server die WHERE Klausel nach der LEFT JOIN Klausel.,

The following example shows how to join three tables: production.products, sales.orders, and sales.order_items using the LEFT JOIN clauses:

Here is the output:

SQL Server LEFT JOIN: conditions in ON vs., WHERE Klausel

Die folgende Abfrage findet die Produkte, die zur Bestell-ID 100 gehören:

Bewegen wir die Bedingung order_id = 100 zur ON Klausel:

Die Abfrage gab alle Produkte zurück, aber nur die Bestellung mit der ID 100 enthält die zugehörigen Produktinformationen.,

Beachten Sie, dass für die INNER JOIN – Klausel die Bedingung in der ON – Klausel funktional äquivalent ist, wenn sie in der WHERE – Klausel platziert wird.

In diesem Tutorial haben Sie gelernt, wie Sie mit der SQL Server LEFT JOIN – Klausel Daten aus mehreren verwandten Tabellen abrufen.