Sobes.tech
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:

  1. Asosiy so'rov — boshlang'ich satrlar to'plami.
  2. 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.