Einführung in Joins in MySQL
MySQL Joins spielen eine wichtige Rolle, wenn wir zwei Tabellen zusammenfügen müssen, basierend auf einem oder mehreren gemeinsamen Werten, die von zwei Tabellen geteilt werden.
Beispiel : Nehmen wir an, wir haben zwei Tabellen, eine ist die Mitarbeitertabelle, bestehend aus employee_id, phn_no, salary und department. Eine andere Tabelle ist die Adresstabelle, die aus employee_id und address besteht. Wenn wir employee_id, department und address herausfinden müssen, müssen wir beide Tabellen, die das gemeinsame Feld teilen, als employee_id verbinden.
Abfrage :
SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;
Top 6 Arten von Joins in MySQL
Es gibt verschiedene Arten von Joins in MySQL. Die folgenden Verknüpfungen werden im täglichen Gebrauch verwendet und sind besonders nützlich, wenn Sie viele Abfragen in realen Szenarien ausführen.
- Innerer Join
- Linke Verbindung
- Richtig mitmachen
- Vollständige äußere Verknüpfung
- Selbst beitreten
- Cross Join
1. Inner Join
Innerer Join gibt den Wert zurück, der in beiden Tabellen übereinstimmt.
Dieser Teil wird wie in der Abbildung oben gezeigt ausgegeben.
Beispiel 1:
Emp_id | Abteilung | Gehalt |
1001 | ES | 1000 |
1002 | CSR | 800 |
1003 | ES | 2000 |
Dies ist die Mitarbeitertabelle.
Emp_id | Adresse |
1002 | Delhi |
1003 | Bangalore |
1005 | Bbsr |
Hier ist die Adresstabelle dieser Mitarbeiter. Der Primärschlüssel emp_id des Mitarbeiters der übergeordneten Tabelle wird als Fremdschlüssel in der Adresstabelle verwendet, bei der es sich um die untergeordnete Tabelle handelt. Wir finden die emp_id, die Abteilung und die Adresse eines Mitarbeiters mithilfe des Inner-Joins. Weil innerer Join-Status Die Datensätze werden abgerufen, die in beiden Tabellen vorhanden / gemeinsam sind.
Abfrage:
SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;
Der Tabellenname wird mit einem Alias versehen, um Zeit zu sparen. In der obigen Abfrage verwenden wir den Alias "emp" für die Mitarbeitertabelle und "ads" für die Adresstabelle.
Ausgabe:
Emp_id | Abteilung | Adresse |
1002 | CSR | Delhi |
1003 | ES | Bangalore |
Da im obigen Beispiel emp_id 1002 und 1003 in beiden Tabellen gemeinsam waren, ruft der Befehl inner join die Ausgabe nur für diese Mitarbeiter ab.
Beispiel # 2:
Hier haben wir 2 Tabellen, table1 & table2. Beide Tabellen bestehen jeweils aus einem Attribut als Spalte A bzw. Spalte B.
Tabelle 1
Spalte A |
1 |
1 |
2 |
3 |
4 |
Tabelle 2
Spalte B |
1 |
2 |
2 |
3 |
3 |
5 |
Abfrage:
If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;
Ausgabe:
Spalte A | Spalte B |
1 | 1 |
1 | Null |
2 | 2 |
Null | 2 |
3 | 3 |
Null | 3 |
2. Linke Verbindung
Dieser Join gibt alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle zurück.
Wie das obige Diagramm zeigt, besteht es aus allen Datensätzen von Tabelle A und den gemeinsamen Datensätzen von A und B.
Beispiel 1:
Kundennummer | Name | Stadt |
1 | Harish | Cuttack |
2 | David | Bangalore |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
Kundentabelle:
Auftragsnummer | Menge | Kundennummer |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457, 00 | 3 |
Bestelltabelle:
Wir werden die customer_id, name und order_id herausfinden, die mit left join verknüpft sind.
Abfrage:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;
Ausgabe:
Kundennummer | Name | Auftragsnummer |
1 | Harish | Null |
2 | David | 19976 |
3 | Mahesh | 99680 |
4 | Sam | 19868 |
Wie wir besprochen haben, hat dieser Link-Join alle Kunden-IDs aus der Kundentabelle und die gemeinsamen aus beiden Tabellen abgerufen. Für die customer_id '1' wird 'null' angezeigt, da die customer_id '1' nicht in der Auftragstabelle vorhanden ist.
Beispiel # 2:
Hier haben wir 2 Tabellen, table1 & table2. Beide Tabellen bestehen jeweils aus einem Attribut als Spalte A bzw. Spalte B.
Tabelle 1
Spalte A |
1 |
1 |
2 |
2 |
3 |
Tabelle 2
Spalte B |
1 |
2 |
2 |
4 |
4 |
5 |
5 |
Abfrage:
If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;
Spalte A | Spalte B |
1 | 1 |
1 | Null |
2 | 2 |
2 | 2 |
3 | Null |
3. Right Join
Dieser Join gibt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurück.
Das obige Diagramm zeigt, dass alle Datensätze aus Tabelle B und dem gemeinsamen Datensatz, der in beiden Tabellen vorhanden ist, abgerufen werden.
Beispiel:
Kundennummer | Name | Stadt |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
5 | RAM | Mumbai |
Kundentabelle:
Auftragsnummer | Menge | Kundennummer |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457, 00 | 3 |
Bestelltabelle:
Wir ermitteln die dazugehörige customer_id, name und order_id mithilfe des richtigen Joins.
Abfrage:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;
Ausgabe:
Kundennummer | Name | Auftragsnummer |
2 | Null | 19976 |
3 | Mahesh | 99680 |
4 | Sam | 19868 |
Da wir hier einen Rechts-Join durchgeführt haben, hat die Abfrage alle Kunden-IDs aus der Auftragstabelle und den gemeinsamen Datensätzen abgerufen, die sich in beiden Tabellen befinden.
4. Vollständige äußere Verbindung
Die vollständige äußere Verknüpfung gibt alle Datensätze aus beiden Tabellen zurück, wenn ein gemeinsames Feld vorhanden ist.
Beispiel:
Kundennummer | Name | Stadt |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
5 | RAM | Mumbai |
Kundentabelle:
Auftragsnummer | Menge | Kundennummer |
19868 | 7575.00 | 4 |
19976 | 434654.00 | 2 |
99680 | 7457, 00 | 3 |
Bestelltabelle:
Wir ermitteln die dazugehörige customer_id, name und order_id mithilfe eines vollständigen Outer-Joins.
Abfrage:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;
Ausgabe:
Kundennummer | Name | Auftragsnummer |
2 | Null | 19976 |
3 | Mahesh | 99680 |
4 | Sam | 19868 |
5 | RAM | Null |
Durch diesen vollständigen äußeren Join wurde die gesamte Kunden-ID aus der Kundentabelle sowie der Auftragstabelle abgerufen.
5. Self-Join
Self-Join ist ein regulärer Join und hier verbindet sich die Tabelle nur mit sich selbst.
Emp_id | Name | Telefonnummer | Stadt | Land |
1001 | R. Madhvan | 9687687698 | Bangalore | Indien |
1002 | Gobu Sharma | 9856453423 | Pune | Indien |
1003 | Debasish Das | 8765456787 | Mumbai | Indien |
1004 | Amit Rout | 4567788635 | Pune | Indien |
1005 | Sambit Kar | 8789887873 | Hyderabad | Indien |
Hier ist die Mitarbeitertabelle, die aus mehreren Feldern besteht. Wir werden herausfinden, welche Angestellten in derselben Stadt leben.
Abfrage :
SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;
Ausgabe :
Employee_name1 | Employee_name2 | e1.city |
Gobu Sharma | Amit Rout | Pune |
Amit Rout | Gobu Sharma | Pune |
6. Cross Join
Dieser Join erzeugt ein Ergebnis, bei dem die Anzahl der Zeilen in der ersten Tabelle mit den Zeilen in der zweiten Tabelle multipliziert wird. Diese Art von Ergebnis wird als kartesisches Produkt bezeichnet. Wenn wir die WHERE-Klausel mit diesem Join verwenden, funktioniert dies als innerer Join.
Beispiel:
Prod_id | Produktname | Prod_unit | Firmen_ID |
1 | Chex mischen | Stck | 12 |
2 | Cheez-it | Stck | 15 |
3 | Keks | Stck | 16 |
Produkttabelle :
Firmen_ID | Name der Firma | Firmen_Stadt |
15 | Feinschmecker | Delhi |
16 | Jack n Jill | Cuttack |
17 | Natürlich | Bangalore |
Unternehmenstabelle :
Wir werden einen Cross-Join auf diese Tabellen anwenden.
Abfrage :
SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;
Ausgabe :
p.Produktname | p.prod_unit | c.unternehmensname |
Chex mischen | Stck | Feinschmecker |
Cheez-it | Stck | Feinschmecker |
Keks | Stck | Feinschmecker |
Chex mischen | Stck | Jack n Jill |
Cheez-it | Stck | Jack n Jill |
Keks | Stck | Jack n Jill |
Chex mischen | Stck | Natürlich |
Cheez-it | Stck | Natürlich |
Keks | Stck | Natürlich |
Fazit
Die Bedeutung dieser Verknüpfungen ist sehr wichtig, wenn Sie in Echtzeitszenarien sowie in einigen anderen Technologien arbeiten. In Visualisierungen wie Tableau und Power BI spielen Joins eine wichtige Rolle. Das strukturierte Üben ist der Schlüssel zum Einbetten dieser neuen Techniken und Fähigkeiten.
Empfohlener Artikel
Dies ist eine Anleitung zu den Joins in MySQL. Hier besprechen wir die Top 6 Arten von Joins in MySQL wie Inner, Left, Right, Full, Self, Cross und deren Beispiele zusammen mit Query und Output. Sie können auch unsere Artikelvorschläge durchgehen, um mehr zu erfahren -
- Top 10 MySQL-Befehle
- Einführung in MySQL-Operatoren
- MySQL vs SQLite | Top 14 Vergleich
- Top 23 MySQL String-Funktionen
- Erläutern Sie den Befehl Einfügen in MySQL anhand von Beispielen
- Top 6 Unterschiede zwischen Primärschlüssel und Fremdschlüssel