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 On s'attend à obtenir: 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 IA

Réponse de l'IA

Dans l'exemple fourni, la requête SQL implémente correctement l'affichage de la liste des employés et de leurs superviseurs à partir d'une même table staff en utilisant un self JOIN.

La table staff contient les champs id, name et head_id, où head_id est une référence à l'id du superviseur de l'employé.

Requête :

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 est un alias pour les employés.
  • m est un alias pour leurs managers.
  • LEFT JOIN garantit que même les employés sans manager (par exemple, Ivan et Bob) auront une ligne avec manager_name = NULL.

Ainsi, la requête affiche les noms des employés et les noms de leurs superviseurs, si disponibles, ce qui correspond au résultat attendu.