Junior — Middle
Explica ce sunt expresiile comune de tabel recursiv (CTE) și cum sunt utilizate în interogările SQL
sobes.tech AI
Răspuns de la AI
Expresiile comune de tabel recursive (CTE) sunt un tip special de seturi de rezultate temporare în SQL, care pot face referire la ele însele pentru a executa interogări recursive. Acestea sunt utile pentru lucrul cu structuri de date ierarhice sau grafice, de exemplu, pentru traversarea unui arbore de categorii, organizarea angajaților după subordonare etc.
Un CTE recursiv constă din două părți:
- Interogarea de bază — setul inițial de rânduri.
- Interogarea recursivă — utilizează rezultatele iterației anterioare pentru a obține nivelul următor de date.
Exemplu: obținerea tuturor angajaților subordonați cu id = 1 într-o ierarhie de angajați.
WITH RECURSIVE Subordinates AS (
SELECT id, manager_id, name
FROM employees
WHERE id = 1 -- caz de bază
UNION ALL
SELECT e.id, e.manager_id, e.name
FROM employees e
INNER JOIN Subordinates s ON e.manager_id = s.id -- caz recursiv
)
SELECT * FROM Subordinates;
Această interogare selectează mai întâi angajatul cu id=1, apoi adaugă recursiv toți angajații ale căror manager_id corespunde cu id-ul angajaților deja găsiți, până când parcurge întreaga ierarhie.