Sobes.tech
Senior

CREATE TABLE staff ( id TEXT name TEXT head_id TEXT ); id | name | head_id -------------------- 1 | Ivan | NULL 2 | Petr | 1 3 | Alice | 1 4 | Max | 2 5 | Alex | 2 6 | Elena | 4 7 | Bob | NULL Erwarten Sie: employee_name | manager_name --------------------------- Ivan | NULL Petr | Ivan Alice | Ivan Max | Petr Alex | Petr Elena | Max Bob | NULL SELECT e.name AS employee_name, m.name AS manager_name FROM staff e LEFT JOIN staff m ON e.head_id = m.id

sobes.tech KI

Antwort von AI

Im bereitgestellten Beispiel implementiert die SQL-Abfrage korrekt die Ausgabe einer Liste von Mitarbeitern und deren Vorgesetzten aus einer einzigen Tabelle staff mittels Self JOIN.

Die Tabelle staff enthält die Felder id, name und head_id, wobei head_id eine Referenz auf die id des Vorgesetzten des Mitarbeiters ist.

Abfrage:

SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
  • e ist ein Alias für die Mitarbeiter.
  • m ist ein Alias für ihre Manager.
  • LEFT JOIN stellt sicher, dass auch Mitarbeiter ohne Manager (z.B. Ivan und Bob) eine Zeile mit manager_name = NULL haben.

Auf diese Weise zeigt die Abfrage die Namen der Mitarbeiter und die Namen ihrer Vorgesetzten, falls vorhanden, was dem erwarteten Ergebnis entspricht.