Junior — Middle
Rekursiv Umum Jadvallar ifodalar (CTE) nima va ular SQL so'rovlarida qanday ishlatiladi, tushuntiring
sobes.tech AI
AIdan javob
Rekursiv Umumiy Stol So'rovlar (CTE) SQLda vaqtinchalik natijalar to'plamining maxsus turi bo'lib, ular o'zlariga murojaat qilishlari mumkin va rekursiv so'rovlarni bajarish uchun ishlatiladi. Ular hierarxik yoki grafik ma'lumot tuzilmalar bilan ishlash uchun foydalidir, masalan, toifalar daraxtini yurish, xodimlarni bo'ysunishiga ko'ra tashkil qilish va boshqalar.
Rekursiv CTE ikki qismdan iborat:
- Asosiy so'rov — boshlang'ich satrlar to'plami.
- Rekursiv so'rov — avvalgi iteratsiya natijalaridan foydalanib, keyingi ma'lumotlar darajasini olish.
Misol: xodimlar hierarhiyasida id = 1 bo'lgan barcha bo'ysunuvchilarni olish.
WITH RECURSIVE Subordinates AS (
SELECT id, manager_id, name
FROM employees
WHERE id = 1 -- asosiy holat
UNION ALL
SELECT e.id, e.manager_id, e.name
FROM employees e
INNER JOIN Subordinates s ON e.manager_id = s.id -- rekursiv holat
)
SELECT * FROM Subordinates;
Ushbu so'rov avvalo id=1 bo'lgan xodimni tanlaydi, so'ngra rekursiv tarzda barcha xodimlarni qo'shadi, ularning manager_id'si allaqachon topilgan xodimlarning id'siga mos keladigan, to hierarxiyani to'liq o'tguncha.