Senior
CREATE TABLE staff ( id TEXT name TEXT head_id TEXT ); id | name | head_id -------------------- 1 | Ivan | NULL 2 | Petr | 1 3 | Alice | 1 4 | Max | 2 5 | Alex | 2 6 | Elena | 4 7 | Bob | NULL Bekleniyor: employee_name | manager_name --------------------------- Ivan | NULL Petr | Ivan Alice | Ivan Max | Petr Alex | Petr Elena | Max Bob | NULL SELECT e.name AS employee_name, m.name AS manager_name FROM staff e LEFT JOIN staff m ON e.head_id = m.id
sobes.tech yapay zeka
AI'dan gelen yanıt
Verilen örnekte, SQL sorgusu, aynı tablo staff kullanarak çalışanların ve yöneticilerinin listesini doğru şekilde gösterir, self JOIN ile.
staff tablosu, id, name ve head_id alanlarını içerir; burada head_id, çalışanın yöneticisinin id sine referanstır.
Sorgu:
SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
eçalışanlar için takma isimdir.myöneticileri içindir.- LEFT JOIN, yöneticisi olmayan çalışanlar (örneğin Ivan ve Bob) için bile
manager_name= NULL olan satırların olmasını sağlar.
Bu şekilde, sorgu çalışanların isimlerini ve varsa yöneticilerinin isimlerini gösterir, bu da beklenen sonucu karşılar.