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:
- Temel sorgu — başlangıç satır kümesi.
- 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.