Sobes.tech
Middle

Czy możesz podać przykład, kiedy używane są rekurencyjne CTE?

sobes.tech AI

Odpowiedź od AI

Rekurencyjne wyrażenia tabelaryczne (CTE) służą do pracy z hierarchicznymi lub rekurencyjnymi strukturami danych, na przykład do przechodzenia przez drzewo lub graf.

Przykład: pobranie wszystkich podwładnych pracownika w strukturze organizacyjnej.

WITH RECURSIVE Subordinates AS (
    SELECT employee_id, manager_id, name
    FROM employees
    WHERE employee_id = 1  -- przełożony, od którego zaczynamy
    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;

Ta zapytanie rekurencyjnie zbiera wszystkich pracowników podległych przełożonemu o employee_id = 1.