Mehrere Joins

Daten in SQL verbinden (JOIN)

Maham Faisal Khan

Senior Content Developer, DataCamp

Joins auf Joins

SELECT *
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id

INNER JOIN another_table ON left_table.id = another_table.id;

Hinweis. Je nach Anwendungsfall kann in der ON-Klausel entweder left_table oder right_table verwendet werden.

Daten in SQL verbinden (JOIN)

Joins auf Joins

Die Tabelle prime_minister_terms aus unserer Datenbank der Staatsoberhäupter

Die Tabelle „prime_minister_terms“ hat zwei Spalten: den Namen des Premierministers und das Jahr, in dem er sein Amt angetreten hat.

Daten in SQL verbinden (JOIN)

Was zuerst verbinden?

SELECT p1.country, p1.continent, 
       president, prime_minister
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country);
| country  | continent     | president               | prime_minister   |
| -------- | ------------- | ----------------------- | ---------------- |
| Egypt    | Africa        | Abdel Fattah el-Sisi    | Mostafa Madbouly |
| Portugal | Europe        | Marcelo Rebelo de Sousa | Luís Montenegro  |
| Pakistan | Asia          | Asif Ali Zardari        | Shehbaz Sharif   |
| India    | Asia          | Droupadi Murmu          | Narendra Modi    |
Daten in SQL verbinden (JOIN)

Verkettung von Joins

Ein Diagramm, das das Ergebnis der Zusammenführung aus der vorherigen Folie (Präsidenten und Premierminister) mit einer neuen Tabelle, Premierminister_Amtszeiten, zeigt. Das Ergebnis besteht aus fünf Spalten: Land, Kontinent, Präsident, Premierminister und pm_start.

Daten in SQL verbinden (JOIN)

Verkettung von Joins

-- SQL query for chaining inner joins
SELECT 
    p1.country, 
    p1.continent, 
    president, 
    prime_minister, 
    pm_start
FROM prime_ministers as p1
INNER JOIN presidents as p2
USING(country)

INNER JOIN prime_minister_terms as p3 USING(prime_minister);
Daten in SQL verbinden (JOIN)

Auf was (ON) erstellen wir den Join?

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id;
Diagramm für einen INNER JOIN mittels ON auf das Feld id

Ein Diagramm, das zeigt, dass man beim Abgleichen einer Spalte manchmal für das Verbundfeld aus der linken Tabelle mehrere Übereinstimmungen im Verbundfeld der rechten Tabelle findet. Die Ergebnismenge enthält mehrere Datensätze für jede ID in der rechten Tabelle, die mit der linken Tabelle übereinstimmen.

Daten in SQL verbinden (JOIN)

Joins mit mehreren Schlüsselfeldern

SELECT * 
FROM left_table
INNER JOIN right_table
ON left_table.id = right_table.id
    AND left_table.date = right_table.date;
Diagramm für einen INNER JOIN mittels ON auf das Feld id UND (AND) date

Ein Diagramm, das zeigt, dass die Anzahl der Datensätze im Ergebnis reduziert werden kann, wenn mehrere Verbundfelder benutzt werden. Hier werden sowohl die ID als auch das Datum verwendet, um die beiden Tabellen zu verbinden.

Daten in SQL verbinden (JOIN)

Lass uns üben!

Daten in SQL verbinden (JOIN)

Preparing Video For Download...