Junior — Middle
Rekursiv Ümumi Cədvəl İfadələri (CTE) nədir və SQL sorğularında necə istifadə olunur, izah edin
sobes.tech Süni İntellekt
AI-dan cavab
SQL-də Rekursiv Ümumi Cədvəl İfadələri (CTE) xüsusi növ müvəqqəti nəticə dəstləridir və özlərinə istinad edə bilərlər, bu da rekursiv sorğuların yerinə yetirilməsinə imkan verir. Onlar hierarxik və ya qrafik məlumat strukturları ilə işləmək üçün faydalıdır, məsələn, kateqoriya ağacını keçmək, işçiləri tabeçiliklərinə görə təşkil etmək və s.
Rekursiv CTE iki hissədən ibarətdir:
- Əsas sorğu — başlanğıc satır dəstidir.
- Rekursiv sorğu — əvvəlki iterasiyanın nəticələrindən istifadə edərək növbəti məlumat səviyyəsini əldə edir.
Misal: işçilər hierarxiyasında id = 1 olan bütün tabe işçiləri əldə etmək.
WITH RECURSIVE Subordinates AS (
SELECT id, manager_id, name
FROM employees
WHERE id = 1 -- əsas hal
UNION ALL
SELECT e.id, e.manager_id, e.name
FROM employees e
INNER JOIN Subordinates s ON e.manager_id = s.id -- rekursiv hal
)
SELECT * FROM Subordinates;
Bu sorğu əvvəlcə id=1 olan işçini seçir, sonra rekursiv olaraq bütün işçiləri əlavə edir, onların manager_id'si artıq tapılmış işçilərin id'sinə uyğun olan, bütün hierarxiyanı keçənə qədər.