Sobes.tech
Junior — Middle

Рекурсивдик Жалпы Стол Формулалары (CTE) деген эмне жана алар SQL суроолордо кандай колдонулат, түшүндүрүңүз

sobes.tech AI

AIден жооп

Кайталанмачы Жалпы Стол Өрнөктөрү (CTE) — SQLда атайын түрү убактылуу натыйжалар топтому, ал өзүнө шилтеме бере алат жана кайталанма суроолорду аткарууга мүмкүндүк берет. Алар иерархиялык же графтык маалымат түзүмдөрү менен иштөө үчүн пайдалуу, мисалы, категориялар дарагын өтүү, кызматкерлерди баш ийүү боюнча уюштуруу жана башка.

Кайталанмачы CTE эки бөлүктөн турат:

  1. Негизги суроо — баштапкы саптар топтому.
  2. Кайталанмачы суроо — мурунку итерациянын натыйжаларын колдонуп, кийинки маалымат деңгээлин алууга мүмкүндүк берет.

Мисал: кызматкерлердин иерархиясында id = 1 болгон бардык баш ийүүчү кызматкерлерди алуу.

WITH RECURSIVE Subordinates AS (
    SELECT id, manager_id, name
    FROM employees
    WHERE id = 1  -- негизги учур
  
    UNION ALL
  
    SELECT e.id, e.manager_id, e.name
    FROM employees e
    INNER JOIN Subordinates s ON e.manager_id = s.id  -- кайталанма учур
)
SELECT * FROM Subordinates;

Бул суроо биринчи кезекте id=1 болгон кызматкерди тандайт, андан соң рекурсивдүү түрдө бардык кызматкерлерди кошот, алардын manager_id'си, ал эми алардын id'си, ал эми алардын менеджеридеги id'си менен дал келген, бүт иерархияны карап чыгуу үчүн.