Sobes.tech
Junior — Middle

Rekursif Ortak Tablo İfade (CTE) nedir ve SQL sorgularında nasıl kullanılır açıklayın

sobes.tech yapay zeka

AI'dan gelen yanıt

Rekursif Common Table Expressions (CTE), SQL'de özel bir geçici sonuç kümesi türüdür ve kendisine referans verebilir, böylece rekürsif sorgular yapabilir. Hiyerarşik veya grafik veri yapılarıyla çalışmak için faydalıdır, örneğin kategori ağacını dolaşmak, çalışanları bağlılıklarına göre düzenlemek vb.

Rekursif bir CTE iki bölümden oluşur:

  1. Temel sorgu — başlangıç satır kümesi.
  2. Rekursif sorgu — önceki yinelemenin sonuçlarını kullanarak bir sonraki veri seviyesini elde eder.

Örnek: çalışanlar hiyerarşisinde id=1 olan tüm bağlı çalışanları almak.

WITH RECURSIVE Subordinates AS (
    SELECT id, manager_id, name
    FROM employees
    WHERE id = 1  -- temel durum
  
    UNION ALL
  
    SELECT e.id, e.manager_id, e.name
    FROM employees e
    INNER JOIN Subordinates s ON e.manager_id = s.id  -- rekursif durum
)
SELECT * FROM Subordinates;

Bu sorgu önce id=1 olan çalışanı seçer, ardından rekursif olarak manager_id'si, zaten bulunan çalışanların id'siyle eşleşen tüm çalışanları ekler, tüm hiyerarşi taranana kadar.