Self join
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 46 von 72.
Self-joins sind different Arten von Joins. Bisher haben wir über Joins mehrerer table-Verbindungen gesprochen, aber Self-Joins werden mit derselben table verknüpft. Ein klassisches Beispiel wäre eine table von employees.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
Jeder Mitarbeiter hat einen Manager, außer dem obersten Manager, und jeder Manager ist auch ein Mitarbeiter.
Das Problem: Für jeden Mitarbeiter möchten wir den Namen des Vorgesetzten 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 auf derselben table aus, außer dass wir sie beim ersten Mal e1 nennen und beim zweiten Mal e2. 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:
<strong>friends</strong>:<strong>id</strong>,<strong>name</strong>,<strong>friend_id</strong>
Finde Freundespaare, die gegenseitige Freunde sind (eine gegenseitige Freundschaft besteht, wenn die friend_id von Person A auf Person B zeigt UND die friend_id von Person B auf Person A zeigt). Zeige beide Namen der 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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsÜbe selbstständig: SQL-Playground