SQLShack (Deutsch)

In diesem Artikel lernen wir SQL kennen Multiple Joins-Konzept und vertiefen unsere Erkenntnisse mit ziemlich einfachen Beispielen, die anhand von Abbildungen erläutert werden. In relationalen Datenbanken werden Daten in Tabellen gespeichert. Ohne Zweifel und meistens benötigen wir eine Ergebnismenge, die aus Daten aus mehreren Tabellen besteht. Mit den Verknüpfungen können wir Daten aus zwei oder mehr Tabellen kombinieren, sodass wir Daten aus den Tabellen verknüpfen können, sodass wir Daten aus mehreren Tabellen problemlos abrufen können. Möglicherweise fragen Sie sich, wie viele verschiedene Arten von Verknüpfungen in SQL Server vorhanden sind. Die Antwort lautet: In SQL Server gibt es vier Haupttypen von Verknüpfungen. Zunächst werden sie anhand von Venn-Diagrammabbildungen kurz beschrieben:

  • Inner Join gibt die Zeilen zurück, die in beiden Tabellen übereinstimmen.

  • Linker Join gibt alle Zeilen aus der linken Tabelle zurück

  • Right Join gibt alle Zeilen aus der rechten Tabelle zurück.

  • Vollständiger Join gibt ganze Zeilen aus beiden Tabellen zurück.

Wenn Sie keine Kenntnisse haben Informationen zum SQL-Join-Konzept in SQL Server finden Sie in der Übersicht über die SQL-Join-Typen und im Tutorial-Artikel.

Nach dieser kurzen Erläuterung der SQL-Join-Typen werden die verschiedenen Joins behandelt.

Was sind SQL-Mehrfachverknüpfungen?

Mehrere Verknüpfungen können wie folgt beschrieben werden. Multiple Join ist eine Abfrage, die dieselben oder unterschiedliche Join-Typen enthält, die mehrmals verwendet werden. Auf diese Weise können wir mehrere Datentabellen kombinieren, um Probleme mit relationalen Datenbanken zu lösen.

Beispielszenario

Das Unternehmen Green-Tree startete eine neue Kampagne für das neue Jahr und unterbreitete seinen Online-Kunden verschiedene Angebote. Als Ergebnis ihrer Kampagne gelang es ihnen, einige Angebote in Verkäufe umzuwandeln. In den folgenden Beispielen werden die Details der Kampagnendaten des neuen Jahres des Unternehmens Green-Tree aufgedeckt.

Das Unternehmen speichert diese Details der Kampagnendaten in den folgenden Tabellen. Jetzt erstellen wir diese Tabellen mithilfe der folgenden Abfrage und füllen sie mit einigen Dummy-Daten:

Wie funktionieren mehrere SQL-Joins?

Geschäftsproblem: Welche Kunden waren an diesem neuen Jahr interessiert? Kampagne?

Um diese Frage zu beantworten, müssen wir die übereinstimmenden Zeilen für alle Tabellen ermitteln, da einige Kunden kein E-Mail-Angebot erhalten haben und einige Angebote nicht in einen Verkauf umgewandelt werden konnten. Das folgende Venn-Diagramm hilft uns dabei, die übereinstimmenden Zeilen herauszufinden, die wir benötigen. Kurz gesagt, das Ergebnis dieser Abfrage sollten die sich überschneidenden Zeilen aller Tabellen in der Abfrage sein. Der graue Bereich gibt diese Zeilen im Venn-Diagramm an:

Der SQL-Ansatz für mehrere Verknüpfungen hilft uns, Online-Kunden beizutreten , Bestellungen und Verkaufstabellen. Wie im Venn-Diagramm gezeigt, müssen die Zeilen aller Tabellen übereinstimmen. Aus diesem Grund werden wir alle Tabellen mit einer inneren Join-Klausel kombinieren. Die folgende Abfrage gibt eine von uns gewünschte Ergebnismenge zurück und beantwortet die Frage:

1
2
3
4
5
6
7
8

SELECT customerName, customercity, customermail, salestotal
VON Online-Kunden AS oc
INNER JOIN
bestellt AS o
ON oc.customerid = o.customerid
INNER JOIN
sales AS
ON o.orderId = s.orderId

Zuerst analysieren wir die Abfrage. Eine innere Verknüpfungsklausel zwischen Online-Kunden und Auftragstabellen leitete die übereinstimmenden Zeilen zwischen diesen beiden Tabellen ab. Die zweite innere Join-Klausel, die die Verkaufstabelle kombiniert, hat die übereinstimmenden Zeilen aus der vorherigen Ergebnismenge abgeleitet. Die folgende Abbildung mit farbigen Tabellen hilft uns, die Datenübereinstimmung der verknüpften Tabellen in der Abfrage zu verstehen. Die gelb gefärbten Zeilen geben übereinstimmende Daten zwischen Online-Kunden und Bestellungen an. Andererseits sind in den Verkaufstabellen nur die blau gefärbten Zeilen vorhanden, sodass das Abfrageergebnis blau gefärbte Zeilen sind:

Das Ergebnis der Abfrage sieht folgendermaßen aus:

Unterschiedliche Verwendung von Join-Typen in SQL-Mehrfach-Joins

Geschäftsproblem: Welche Angebote konnten nicht in einen Verkauf umgewandelt werden?

Wir können die verschiedenen Arten von Joins in einer einzigen Abfrage verwenden, um verschiedene Probleme mit relationalen Datenbanken zu lösen.In diesem Beispiel benötigen wir alle Zeilen der Auftragstabelle, die mit Online-Kundentabellen übereinstimmen. Andererseits sind diese Zeilen in der Verkaufstabelle nicht vorhanden. Das folgende Venn-Diagramm hilft uns dabei, die übereinstimmenden Zeilen herauszufinden, die wir benötigen. Der graue Bereich zeigt Zeilen an, die die Ausgabe der Abfrage sein werden:

Im ersten Schritt sollten wir kombinieren Die Online-Kunden- und Auftragstabellen werden über die Inner Join-Klausel erstellt, da Inner Join alle übereinstimmenden Zeilen zwischen Online-Kunden- und Auftragstabellen zurückgibt. Im zweiten Schritt kombinieren wir die Auftragstabelle mit der Verkaufstabelle über den linken Join und filtern dann die Nullwerte, da wir die Zeilen entfernen müssen, die in der Verkaufstabelle gespeichert sind:

1
2
3
4
5
6
7
8
9

SELECT customerName, customercity, customermail, ordertotal, salestotal
FROM onlinecustomers AS c
INNER JOIN
bestellt AS o
ON c.customerid = o.customerid
LEFT JOIN
sales AS
ON o.orderId = s.orderId
WO s.salesId IST NULL

Das Ergebnis der Abfrage wird angezeigt sehen Sie so aus:

Quiz

Q. Frage: Bitte generieren Sie die richtige Abfrage gemäß dem folgenden Venn-Diagramm.

Antwort: Wie wir erfahren haben, ermöglicht der vollständige Join uns, alle Zeilen aus den kombinierten Tabellen zurückzugeben. Die beantwortete Abfrage sieht folgendermaßen aus:

1
2
3
4
5
6
7
8

SELECT customerName, customercity, customermail, ordertotal, salestotal
FROM onlinecustomers AS c
FULL JOIN
Bestellungen AS o
ON c.customerid = o.customerid
FULL JOIN
Verkäufe AS s
ON o.orderId = s.orderId

Fazit

In diesem Artikel haben wir uns auf den SQL-Ansatz für mehrere Verknüpfungen konzentriert und ihn anhand detaillierter Beispiele kennengelernt. Durch mehrere Verknüpfungen können wir mehr als zwei Tabellen kombinieren, um verschiedene Probleme im relationalen Datenbanksystem zu lösen. Darüber hinaus haben wir gesehen, wie wir verschiedene Join-Typen in einer einzigen Abfrage verwenden können.

  • Autor
  • Letzte Beiträge
Esat Erkec ist ein SQL Server-Profi, der seine Karriere vor mehr als 8 Jahren als Softwareentwickler begann. Er ist ein Microsoft Server Certified Solutions-Experte für SQL Server.
Der größte Teil seiner Karriere konzentrierte sich auf die Verwaltung und Entwicklung von SQL Server-Datenbanken. Derzeit interessiert er sich für Datenbankadministration und Business Intelligence. Sie finden ihn auf LinkedIn.
Alle Beiträge von Esat Erkec anzeigen

Neueste Beiträge von Esat Erkec (alle anzeigen)
  • Erste Schritte mit der SQL-Programmierung – 3. Februar 2021
  • Lesen einer Ausführung Plan mit allen Details – 28. Januar 2021
  • Übersicht und Beispiele für SQL SELECT TOP-Anweisungen – 25. Januar 2021

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.