Menu
Coddy logo textTech

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 zwischen mehreren Tabellen gesprochen, aber Self-Joins werden mit derselben Tabelle verknüpft. Ein klassisches Beispiel wäre eine Tabelle von employees.

employee_idemployee_namemanager_id
1Minke2
2Temur3
3Tatjana4
4Marinela 

Jeder Mitarbeiter hat einen Vorgesetzten, außer dem obersten Vorgesetzten, und jeder Vorgesetzte ist auch 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_id

Wir führen einen Join auf derselben Tabelle aus, außer dass wir sie beim ersten Mal e1 nennen und beim zweiten Mal e2. Die Verknüpfung erfolgt zwischen den Feldern employee_id und manager_id.

Das Ergebnis:

employee_idemployee_namemanager_name
1MinkeTemur
2TemurTatjana
3TatjanaMarinela
challenge icon

Aufgabe

Mittel

Verfü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 verweist UND die 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 der WHERE-Klausel das Kriterium friend1.id < friend2.id hinzu, damit keine doppelten Paare enthalten sind 

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen