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.

  1. Innerer Join
  2. Linke Verbindung
  3. Richtig mitmachen
  4. Vollständige äußere Verknüpfung
  5. Selbst beitreten
  6. 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 NameAuftragsnummer
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 -

  1. Top 10 MySQL-Befehle
  2. Einführung in MySQL-Operatoren
  3. MySQL vs SQLite | Top 14 Vergleich
  4. Top 23 MySQL String-Funktionen
  5. Erläutern Sie den Befehl Einfügen in MySQL anhand von Beispielen
  6. Top 6 Unterschiede zwischen Primärschlüssel und Fremdschlüssel