Sobes.tech
Middle

Kas saaks anda näite, millal kasutatakse rekursiivseid CTE-sid?

sobes.tech AI

Vastus AI-lt

Rekursiivsed tabeliavaldised (CTE-d) kasutatakse hierarhiliste või rekursiivsete andmestruktuuride töötamiseks, näiteks puu või graafi läbimiseks.

Näide: saada kõik alluvad organisatsioonistruktuuris.

WITH RECURSIVE Subordinates AS (
    SELECT employee_id, manager_id, name
    FROM employees
    WHERE employee_id = 1  -- algusjuht
    UNION ALL
    SELECT e.employee_id, e.manager_id, e.name
    FROM employees e
    INNER JOIN Subordinates s ON e.manager_id = s.employee_id
)
SELECT * FROM Subordinates;

See päring kogub rekursiivselt kõik töötajad, kes on alluvad juhile, kelle employee_id = 1.