0Pricing
SQL Academy · Lektion

Self-Joins und Aliase

Verknüpfen Sie eine Tabelle mithilfe von Aliasen mit sich selbst, um Zeilen innerhalb derselben Tabelle zu vergleichen (Mitarbeiter und Vorgesetzte, Daten und vorherige Daten).

Self-Joins und Aliase ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Self-Join: Eine Tabelle mit sich selbst verknüpfen

Manchmal liegt die Beziehung innerhalb einer einzigen Tabelle:

  • Mitarbeiter ↔ Vorgesetzte (der Vorgesetzte ist ebenfalls ein Mitarbeiter)
  • Verschachtelte Kommentare (jeder Kommentar hat eine parent_id)
  • Freundesgraph (Benutzer ↔ Benutzer)

Die Ausgangssituation

Eine employees-Tabelle mit einem selbstreferenzierenden FK:

CREATE TABLE employees (
  id BIGSERIAL PRIMARY KEY,
  full_name TEXT NOT NULL,
  manager_id BIGINT REFERENCES employees(id)
);

Mitarbeiter mit ihren Vorgesetzten verknüpfen

Geben Sie jeder Instanz einen anderen Alias:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

Ohne Aliase würde die Abfrage nicht kompiliert

Ohne Aliase können Sie nicht erkennen, welche full_name-Spalte gemeint ist. Jeder Verweis ist mehrdeutig:

-- ERROR: column reference "full_name" is ambiguous
SELECT full_name FROM employees JOIN employees ON ...

LEFT JOIN für Mitarbeiter ohne Vorgesetzte

Ein INNER JOIN entfernt Mitarbeiter ohne Vorgesetzten (z. B. den CEO). Verwenden Sie LEFT JOIN, um sie beizubehalten:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id;

Verschachtelte Kommentare

Jeden Kommentar zusammen mit dem Text seines übergeordneten Kommentars anzeigen:

SELECT c.id, c.body, p.body AS parent_body
FROM comments c
LEFT JOIN comments p ON p.id = c.parent_id;

Paare und Kombinationen

Finden Sie Produktpaare, die in derselben Bestellung vorkamen (ohne doppelte Paare (A,B) und (B,A)):

SELECT a.id AS product_a, b.id AS product_b
FROM order_items a
JOIN order_items b
  ON a.order_id = b.order_id
 AND a.product_id < b.product_id;

Benachbarte Zeilen vergleichen

Self-Join auf die „vorherige“ Version einer Zeile:

SELECT a.id, a.created_at, b.created_at AS prev_at
FROM events a
LEFT JOIN events b ON b.id = a.previous_id;

Self-Join vs. Fensterfunktion

Für viele Aufgaben nach dem Muster „jede Zeile mit der vorherigen vergleichen“ ist eine Fensterfunktion (LAG) einfacher und schneller als ein Self-Join. Behandelt in Window Functions Deep Dive.

Rekursive Self-Joins

Müssen Sie N Ebenen tief navigieren (Organigramm, Thread-Baum)? Verwenden Sie eine rekursive CTE – behandelt in Subqueries and CTEs.

Die FK-Spalte indizieren

Fügen Sie immer einen Index für die selbstreferenzierende FK-Spalte hinzu. Ohne diesen Index durchsucht der Join bei jeder Suche nach einem übergeordneten Datensatz die gesamte Tabelle.

CREATE INDEX employees_manager_idx ON employees(manager_id);

Zusammenfassung

Self-Joins verarbeiten Beziehungen innerhalb einer Tabelle.

  • Zwei Aliase für zwei virtuelle Kopien
  • LEFT JOIN, um Wurzel- bzw. oberste Zeilen beizubehalten
  • Die FK-Spalte indizieren
  • Fensterfunktionen können Muster mit der „vorherigen Zeile“ vereinfachen

Kurzer Test

Sie verknüpfen employees mit sich selbst, um den Vorgesetzten jedes Mitarbeiters zu ermitteln. Warum sind Aliase erforderlich?

Häufig gestellte Fragen

Ist die Lektion „Self-Joins und Aliase“ kostenlos?

Ja — der vollständige Text von „Self-Joins und Aliase“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Self-Joins und Aliase“?

Verknüpfen Sie eine Tabelle mithilfe von Aliasen mit sich selbst, um Zeilen innerhalb derselben Tabelle zu vergleichen (Mitarbeiter und Vorgesetzte, Daten und vorherige Daten). Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Self-Joins und Aliase“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Joins? (Wiederholung des relationalen Modells)
  2. Funktionsweise von INNER JOIN
  3. LEFT/RIGHT JOIN und OUTER Joins
  4. Self-Joins und Aliase
← Zurück zu SQL Academy