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 Gözlənilən nəticə: 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 AI
AIден жооп
Берилген мисалда, SQL суроо туура иштейт жана бир таблицадан staff аркылуу кызматкерлердин жана алардын жетекчилеринин тизмесин self JOIN колдонуп көрсөтөт.
staff таблицасында id, name жана head_id талаалары бар, анда head_id кызматкердин жетекчисинин id-не шилтеме кылат.
Суроо:
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— кызматкерлер үчүн алиас.m— алардын менеджерлери үчүн алиас.- LEFT JOIN камсыздайт, тагыраагы, жетекчиси жок кызматкерлер (мисалы, Иван жана Боб) да
manager_name= NULL деген сап менен көрсөтүлөт.
Ошентип, суроо кызматкерлердин аты-жөнүн жана алардын жетекчилеринин аттарын көрсөтөт, эгер бар болсо, бул күтүлгөн натыйжага жооп берет.