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
- Inner Join
- Linke Verbindung
- Richtig mitmachen
- 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
- Schnellere Ausführung, wodurch die gewünschten Spalten schneller abgerufen werden können.
- Optimiert, lesbar und verständlich
- 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 -
- Vorteile von NoSQL
- SQL-Verwaltungstools
- Datenbank in SQL
- Platzhalter in SQL
- Top 6 Arten von Joins in MySQL mit Beispielen