Zum Hauptinhalt springen

Wie funktioniert die Left Join-Verknüpfung, wenn Datensätze mit denselben Werten abgerufen werden

Es gibt verschiedene Arten von Verbindungen in SQL, mit denen Sie Daten aus verschiedenen Tabellen zusammenführen können. Ein solcher Typ ist left join (linker Join). Mit diesem Jointyp können Sie alle Datensätze aus der linken Tabelle und die entsprechenden Datensätze aus der rechten Tabelle abrufen, sofern die Werte in den angegebenen Spalten übereinstimmen.

Wenn wir einen left join anwenden, werden alle Datensätze aus der linken Tabelle als Ergebnis ausgewählt, einschließlich derjenigen, für die es keine Übereinstimmungen in der rechten Tabelle gibt. Wenn keine Übereinstimmungen vorliegen, sind die Werte in den Spalten der rechten Tabelle NULL. Das heißt, ein linker Join ermöglicht es Ihnen, Daten aus zwei Tabellen unter Berücksichtigung bindender Bedingungen zu kombinieren und gleichzeitig alle Datensätze aus der linken Tabelle beizubehalten.

Wenn jedoch Datensätze mit denselben Werten in der linken und rechten Tabelle vorhanden sind, gibt der left join alle Datensätze zurück. Dabei entspricht jeder Datensatz aus der linken Tabelle jedem Datensatz aus der rechten Tabelle mit demselben Wert. Das heißt, der right join gibt das kartesische Produkt solcher Datensätze zurück.

Abrufen von Datensätzen mit denselben Werten bei Verwendung einer Left Join-Verknüpfung

Wenn es darum geht, Datensätze mit denselben Werten zu erhalten, wenn Sie eine Left Join-Beziehung verwenden, können Sie die Ergebnisse filtern. Wenn Sie beispielsweise nach allen Kunden suchen möchten, die Bestellungen getätigt haben, und auch deren Adressen angeben möchten, können Sie die folgende SQL-Abfrage ausführen:

Name des KundenDie Adresse
Iwanstr. Suche einen Mann, 10
PeterLermontov-Straße 5
MariaTolstoi-Straße 2

In diesem Beispiel enthält die Tabelle Kunden Informationen zu Kunden und die Tabelle Bestellungen enthält Informationen zu Bestellungen. Wenn Sie einen left join zwischen diesen Tabellen ausführen, werden alle Datensätze aus der Tabelle "Kunden" und die entsprechenden Datensätze aus der Tabelle "Bestellungen" zurückgegeben. Als Ergebnis erhalten wir nur die Kunden, die Bestellungen haben, und ihre Adressen.

Wie Sie im Beispiel sehen können, ermöglicht die left Join-Verknüpfung das Abrufen von Datensätzen mit denselben Werten, ohne Datensätze zu löschen, die in einer anderen Tabelle keine übereinstimmenden Werte aufweisen. Dies macht left join zu einem leistungsfähigen Werkzeug, um Daten aus verschiedenen Tabellen zu kombinieren und komplexe Berichte oder analytische Abfragen zu erstellen.

Arbeitsprinzip

Die left Join-Beziehung wird verwendet, um alle Datensätze aus der linken Tabelle zusammen mit den entsprechenden Datensätzen aus der rechten Tabelle abzurufen. Die Grundidee hinter der Left Join-Verknüpfung besteht darin, dass selbst wenn der Wert in der rechten Tabelle nicht vorhanden ist oder die Join-Bedingung nicht erfüllt, der Datensatz aus der linken Tabelle weiterhin in das Ergebnis aufgenommen wird.

Der folgende Prozess wird ausgeführt, wenn ein left join ausgeführt wird:

  1. Alle Datensätze aus der linken Tabelle werden ausgewählt, die die WHERE-Bedingung erfüllen.
  2. Für jeden ausgewählten Datensatz aus der linken Tabelle werden die entsprechenden Datensätze aus der rechten Tabelle mithilfe der Join-Bedingung (ON oder USING) überprüft.
  3. Wenn die entsprechenden Datensätze in der rechten Tabelle gefunden werden, werden sie dem Ergebnis hinzugefügt, indem sie mit dem entsprechenden Datensatz aus der linken Tabelle kombiniert werden.
  4. Wenn keine übereinstimmenden Datensätze in der rechten Tabelle gefunden werden, wird ein leerer Datensatz anstelle von Werten aus der rechten Tabelle erstellt und dem Ergebnis hinzugefügt, indem er mit dem Datensatz aus der linken Tabelle kombiniert wird.

Wenn Sie also eine left Join-Verknüpfung verwenden, erhalten Sie ein Ergebnis, das alle Datensätze aus der linken Tabelle und nur die entsprechenden Datensätze aus der rechten Tabelle enthält. Wenn keine entsprechenden Datensätze in der rechten Tabelle vorhanden sind, wird stattdessen ein leerer Datensatz mit NULL-Werten angezeigt.

Vorteile von left join

1. Alle Datensätze aus der linken TabelleEin Left join stellt sicher, dass alle Datensätze aus der linken Tabelle in das Ergebnis aufgenommen werden. Unabhängig davon, ob die entsprechenden Datensätze in der rechten Tabelle vorhanden sind, gibt der left join alle Zeilen aus der linken Tabelle zurück.
2. Kombination von DatenMit Left join können Sie Daten aus zwei Tabellen in einem Abfrageergebnis kombinieren. Dies ist besonders nützlich, wenn Sie Daten aus mehreren Tabellen zur weiteren Analyse oder Anzeige kombinieren möchten.
3. Flexibilität bei AnfragenLeft join bietet Flexibilität bei der Auswahl von Tabellenföderationsbedingungen. Sie können verschiedene Bedingungen verwenden, um anzugeben, welche Datensätze aus der rechten Tabelle mit Datensätzen aus der linken Tabelle verknüpft werden sollen.
4. Verarbeitung von NullwertenDer Left join verarbeitet Nullwerte in der rechten Tabelle, wenn keine entsprechenden Datensätze darin enthalten sind. Dadurch können Sie Daten aus der linken Tabelle abrufen, auch wenn die rechte Tabelle keine entsprechenden Datensätze enthält.

Insgesamt ist left join ein leistungsfähiges Werkzeug bei der Arbeit mit Tabellenverbindungen in SQL. Es ermöglicht Ihnen, alle benötigten Daten aus zwei Tabellen abzurufen, während Sie flexibel und zuverlässig in Abfragen bleiben.

Nachteile von left join

1. Doppelte Einträge

Bei Verwendung des left join-Operators kann es zu Problemen mit doppelten Datensätzen kommen. Wenn in einer Tabelle, die die zweite im left join ist, mehrere Datensätze mit den gleichen Werten vorhanden sind, werden alle Datensätze im resultierenden Dataset dupliziert. Dies kann zu einer Überlastung der Daten führen und die Analyse der Informationen erschweren.

2. Irrationale Verwendung von Ressourcen

Die Verwendung eines left join kann zu einer irrationalen Ressourcennutzung führen, insbesondere bei der Arbeit mit großen Tabellen. Da der left join-Operator jede Zeile aus der linken Tabelle mit allen Zeilen aus der rechten Tabelle verknüpft, kann dies die Abfrageausführung verlangsamen und viel Speicher benötigen.

3. Datenverlust

Wenn der Wert der Schlüsselspalte in der rechten Tabelle fehlt oder NULL ist, wird die entsprechende Zeile aus der linken Tabelle nicht in das Resultdataset aufgenommen. Dies kann zu Datenverlust und Verzerrungen der Analyseergebnisse führen. Darüber hinaus kann die Verwendung eines left join es schwieriger machen, fehlende Werte im Resultset zu finden und zu verarbeiten.

4. Schwierigkeit, die Abfrage zu verstehen

Die Verwendung des left join-Operators kann es schwieriger machen, die Abfrage zu lesen, zu verstehen und zu warten. Da der left join-Operator Daten aus zwei Tabellen verbindet, müssen Sie bei der Bestimmung der Joinbedingung vorsichtig sein und verstehen, welche Datensätze in das Resultdataset aufgenommen werden sollen. Dies kann insbesondere für angehende Entwickler oder Benutzer, die mit SQL-Konstrukten nicht vertraut sind, zu einem Problem werden.

Im Allgemeinen kann der left join-Operator ein nützliches Werkzeug für die Arbeit mit Daten sein, aber es ist notwendig, seine Verwendung sorgfältig zu prüfen und die oben beschriebenen möglichen Nachteile zu berücksichtigen.

Anwendungsbeispiel

Im Folgenden finden Sie ein Beispiel für die Verwendung einer Left Join-Verknüpfung zum Abrufen von Datensätzen mit denselben Werten.

order_idcustomer_idtotal
111000
222000
311500
customer_idnameemail
1John[email protected]
2Emma[email protected]
3Alex[email protected]

Nehmen wir an, wir müssen alle Bestellungen erhalten, die größer als 1000 sind. Wir können die folgende SQL-Abfrage verwenden:

SELECT orders.order_id, customers.name, orders.totalFROM ordersLEFT JOIN customers ON orders.customer_id = customers.customer_idWHERE orders.total > 1000;
order_idnametotal
2Emma2000
3John1500