Self-Join
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 46 von 72.
Self-Joins sind eine andere Art von Joins. Bisher haben wir über Joins mit mehreren Tabellen gesprochen, aber bei Self-Joins wird dieselbe Tabelle mit sich selbst verknüpft. Ein klassisches Beispiel wäre eine Tabelle mit Mitarbeitern.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
Jeder Mitarbeiter hat einen Vorgesetzten, mit Ausnahme des ranghöchsten Vorgesetzten, und jeder Vorgesetzte ist ebenfalls ein Mitarbeiter.
Das Problem: Für jeden Mitarbeiter möchten wir den Namen des Managers wissen.
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idWir führen einen Join zwischen derselben Tabelle durch, außer dass wir sie beim ersten Mal e1 und beim zweiten Mal e2 nennen. Der Join erfolgt zwischen den Feldern employee_id und manager_id.
Das Ergebnis:
| employee_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Aufgabe
MittelVerfügbare Tabellen und Spalten:
friends:id,name,friend_id
Finde Paare von Freunden, die gegenseitig befreundet sind (eine gegenseitige Freundschaft besteht, wenn friend_id von Person A auf Person B verweist UND friend_id von Person B auf Person A verweist). Zeige die Namen beider Freunde in einer einzigen Zeile an. Benenne die Spalten friend1 und friend2.
Hinweis: Füge in die WHERE-Klausel das Kriterium friend1.id < friend2.id ein, damit keine doppelten Paare enthalten sind
Probier es selbst
-- Verbinde die Tabelle mit sich selbst, sodass eine Zeile zwei verschiedene Personen anzeigen kann
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Behalte nur die Paare, die aufeinander zurückzeigen
WHERE ____ AND f1.id < f2.id;Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellenÜbe selbstständig: SQL-Playground