Einführung in die Arten von Joins in SQL

Eine Join-Klausel in SQL dient zum Kombinieren von Zeilen aus zwei oder mehr Tabellen. Der Vorgang des Kombinierens von Zeilen hängt von einer mit ihnen verknüpften Spalte ab. Die vier verschiedenen Arten von Joins in SQL werden als Inner Join, Left Join, Right Join und Full Join bezeichnet. Bevor wir wirklich eine Art von Join verwenden können, benötigen wir ein RDBMS oder ein relationales Datenbankverwaltungssystem, in das wir die Daten laden. Eine der sehr einfachen Möglichkeiten, die Verknüpfungen zu verstehen, ist die Verwendung des Venn-Diagramms. Die Verwendung eines Venn-Diagramms erleichtert das Ermitteln aller möglichen und logischen Beziehungen zwischen verschiedenen Datensätzen. Lassen Sie uns dies nacheinander anhand des Venn-Diagramms verstehen. Später werden wir den Unterschied anhand einiger praktischer Beispiele verstehen. Nehmen wir an, unsere Datenbank enthält zwei Datensätze, die in Form von Tabelle 1 und Tabelle 2 gespeichert sind. Zwischen den beiden Tabellen besteht eine gewisse Beziehung, die in Form eines Primärschlüssels und eines Fremdschlüsselkonzepts angegeben wird. Wenn Sie zwei Tabellen verknüpfen, die eine Beziehung haben, sieht die Venn-Diagrammdarstellung des Szenarios folgendermaßen aus:

Das Ausmaß dieser Überlappung bestimmt das Ausmaß der Ähnlichkeit zwischen den beiden Tabellen, dh Tabelle A und Tabelle B. Dies bedeutet, dass die Anzahl der Datensätze aus Tabelle 1, die mit den Datensätzen aus Tabelle 2 übereinstimmen, durch den Überlappungsabschnitt dargestellt wird. Dies ist eine Teilmenge von Daten. Basierend auf der Teilmenge der Daten, die wir aus den beiden Tabellen auswählen, erhalten wir vier verschiedene Arten von Joins.

Syntax des Joins:

SELECT column-names FROM table-name1 JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Arten von Joins in SQL

  1. Inner Join
  2. Linke Verbindung
  3. Richtig mitmachen
  4. Vollständiger Beitritt

Nachfolgend erklären wir verschiedene Arten von Joins im Detail.

1. Inner Join

In einem Inner Join wählen wir nur die Daten aus, die in beiden Tabellen gemeinsam sind. (dh Teil 3 hier) Um es genauer zu machen, werden alle Datensätze aus beiden Tabellen, die mit der Bedingung übereinstimmen, die beim Join erwähnt wurde, in diesem Join ausgewählt.

Syntax von Inner Join:

SELECT column-names FROM table-name1 INNER JOIN table-name2 ON column-name1 = column-name2 WHERE condition

2. Linke Verbindung

Beim linken Join wählen wir alle Daten aus der linken Tabelle und aus der rechten Tabelle nur den Datensatz aus, der mit der beim Join genannten Bedingung übereinstimmt (hier Bereich 1 + 3)

Syntax von Left Join:

SELECT column-names FROM table-name1 LEFT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

3. Right Join

Beim rechten Join wählen wir alle Daten aus der rechten Tabelle und aus der linken Tabelle nur den Datensatz aus, der der beim Join genannten Bedingung entspricht (hier 3 + 2)

Syntax von Right Join:

SELECT column-names FROM table-name1 RIGHT JOIN table-name2 ON column-name1 = column-name2 WHERE condition

4. Vollständiger Beitritt

Bei einer vollständigen Verknüpfung werden alle Datensätze aus beiden Tabellen zusammengeführt und unabhängig von der Bedingung ausgewählt, die bei der Verknüpfung angegeben wurde oder nicht. (hier 1 + 2 + 3)

Syntax der vollständigen Verknüpfung:

SELECT column-names FROM table-name1 FULL JOIN table-name2 ON column-name1 = column-name2 WHERE condition

Beispiele für Joins in SQL

Betrachten Sie die beiden folgenden Tabellen:

1. Beispiel eines ORDER_DETAILS

Die Tabellenbestellung enthält die Einzelheiten der Bestellung des Kunden, wie die Bestellnummer, die Anzahl der bestellten Produkte, den Bestellbetrag, die Nummer des Kunden, der die Bestellung aufgegeben hat, und das Datum, an dem die Bestellung aufgegeben wurde. Diese Art von Tabelle kann von jeder Online-Website zum Speichern der Bestelldetails verwendet werden.

ORDER_DETAILS-Tabelle:

Auftragsnummer No_of_Items Bestellbetrag Kundennummer Bestelldatum
123 3 5500 P_1 20.01.2013
234 2 6500 P_12 02/10/2019
345 1 10000 P_13 27.05.2013
456 4 4000 P_14 11/07/2019
567 2 20656 P_1 15.12.2013
678 3 15000 P_11 27.10.2013

2. Beispiel für CUSTOMER_DETAILS

Nehmen wir nun eine weitere Tabelle, in der die Details des Kunden gespeichert werden, um die Bestellung an die jeweiligen Adressen liefern zu können. Die Kundentabelle enthält daher die Details des Kunden, z. B. die Kunden-ID (cust_id), die für jeden Kunden eindeutig ist. Jetzt werden der Vorname und der Nachname in den Feldern "Cust_First_Name" und "Cust_Last_Name" gespeichert. In den anderen Feldern werden Informationen wie die E-Mail-ID, die Mobiltelefonnummer des Kunden sowie die Adresse, der PIN-Code, die Stadt und das Bundesland gespeichert. So können wir sehen, dass unsere Kundentabelle ungefähr so ​​aussieht:

CUSTOMER_DETAILS-Tabelle:

Cust_Id Cust_First_Name Cust_Last_Name Geheimzahl Adresse Cust_Mobile Stadt Zustand Cust_email
P_50 Alice Peter 111111 330 xyz Straße 123 Bangalore KA
P_12 James Dsouza 155511 420 abc Kolonie 234 Hyderabad AP
P_15 Harry Töpfer 123456 551 mg Straße 444 Noida Delhi
P_40 Miley Parker 111121 11 Fuß Straße 224 Bangalore KA
P_10 Ihr Mann Busch 123423 34 th thanco Straße 432 Delhi Delhi
P_18 Dan Braun 134523 50. unabhängige Straße 145 Gurugram Haryana
P_20 James Russel 111111 101 mg Straße 678 Bangalore KA
P_1 Miley Madison 100011 45. kaverappa layout 987 Chennai TN

Lassen Sie uns nun anhand dieses Beispiels die Funktionsweise der Joins verstehen. Wir können sehen, dass die Beziehung zwischen den beiden Tabellen, dh der Tabelle ORDER_DETAILS und der Tabelle CUSTOMER_DETAILS, durch den Schlüssel hergestellt wird, der den Wert der Kunden-ID hat, dh Customer_Id, der ein Primärschlüssel in der Tabelle CUSTOMER_DETAILS ist, und einem Fremdschlüssel in der Tabelle ORDER_DETAILS-Tabelle.

Einige wichtige Punkte, die hier zu beachten sind, bevor wir fortfahren, sind:

  • Nicht alle Kunden in unserer Tabelle CUSTOMER_DETAILS haben eine Bestellanfrage gestellt.
  • Nicht jede Bestellanforderung in unserer Tabelle ORDER_DETAILS enthält eine customer_id, die in unserer Tabelle CUSTOMER_DETAILS enthalten ist. Dies bedeutet, dass für einige Bestellungen keine Kundendaten angegeben sind.

3. Inner Join

Inner Join gibt Ihnen nur die Datensätze, für die die Bedingung erfüllt ist.

Abfrage:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
inner join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Ausgabe:

Cust_First_Name Cust_email No_of_Items Bestellbetrag Bestelldatum
Miley 3 5500 20.01.2013
James 2 6500 02/10/2019
Miley 2 20656 15.12.2013

4. Linke Verbindung

Mit Left Join erhalten Sie alle Datensätze aus der linken Tabelle, dh der Tabelle CUSTOMER_DETAILS. Wenn der Kunde keine Bestellungen aufgibt, wird für die Spalten in der Tabelle ORDER_DETAILS ein Nullwert zurückgegeben.

Abfrage:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
left join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Ausgabe:

Cust_First_Name Cust_email No_of_Items Bestellbetrag Bestelldatum
Alice NULL NULL NULL
James 2 6500 02/10/2019
Harry NULL NULL NULL
Miley NULL NULL NULL
Ihr Mann NULL NULL NULL
Dan NULL NULL NULL
James NULL NULL NULL
Miley 3 5500 20.01.2013
Miley 2 20656 15.12.2013

5. Right Join

Richtig, Join gibt Ihnen alle Datensätze aus der rechten Tabelle, dh der ORDER_DETAILS-Tabelle. Wenn für die Bestellung keine Kundendatensätze gefunden wurden, wird ein Nullwert für die Spalten in der Tabelle CUSTOMER_DETAILS zurückgegeben.

Abfrage:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
right join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Ausgabe:

Cust_First_Name Cust_email No_of_Items Bestellbetrag Bestelldatum
Miley 3 5500 20.01.2013
James 2 6500 02/10/2019
NULL NULL 1 10000 27.05.2013
NULL NULL 4 4000 11/07/2019
Miley 2 20656 15.12.2013
NULL NULL 3 15000 27.10.2013

6. Vollständiger Beitritt

Full Join gibt Ihnen alle Datensätze aus, die in beiden Tabellen angegeben sind.

Abfrage:

select Cust_First_Name, Cust_email, No_of_Items, Order_Amount, Order_Date
from CUSTOMER_DETAILS cd
full join ORDER_DETAILS od
on cd.Cust_Id = od.Customer_Id

Ausgabe:

Cust_First_Name Cust_email No_of_Items Bestellbetrag Bestelldatum
Alice NULL NULL NULL
James 2 6500 02/10/2019
Harry NULL NULL NULL
Miley NULL NULL NULL
Ihr Mann NULL NULL NULL
Dan NULL NULL NULL
James NULL NULL NULL
Miley 3 5500 20.01.2013
Miley 2 20656 15.12.2013
NULL NULL 1 10000 27.05.2013
NULL NULL 4 4000 11/07/2019
NULL NULL 3 15000 27.10.2013

Vorteile von Joins in SQL

  1. Schnellere Ausführung, wodurch die gewünschten Spalten schneller abgerufen werden können.
  2. Optimiert, lesbar und verständlich
  3. Leistungssteigerung.

Fazit

Wie Sie sehen, verwenden wir JOINs, um Felder aus verschiedenen Tabellen anzufügen und abzurufen.

  • Inner Join ruft Datensätze ab, in denen die gegebene Bedingung erfüllt ist.
  • Left Join gibt Ihnen alle Zeilen aus der linken Tabelle, auch wenn die angegebene Bedingung nicht zutrifft.
  • Mit Right Join erhalten Sie alle Zeilen aus der linken Tabelle, auch wenn die angegebene Bedingung nicht zutrifft.
  • Full Join gibt alle Zeilen zurück, wenn eine Übereinstimmung in einer der Tabellen vorliegt.
  • Join-Abfragen können mit Befehlen wie SELECT, INSERT, UPDATE, DELETE verwendet werden.
  • Joins kommen auch mit verschiedenen Klauseln wie GROUP BY, SUB QUERIES, WHERE, AGGREGATE FUNCTIONS usw. aus.

Empfohlener Artikel

Dies war ein Leitfaden für Join-Typen in SQL. Hier diskutieren wir die verschiedenen Arten von Joins in SQL und ihre Vorteile zusammen mit Beispielen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Vorteile von NoSQL
  2. SQL-Verwaltungstools
  3. Datenbank in SQL
  4. Platzhalter in SQL
  5. Top 6 Arten von Joins in MySQL mit Beispielen