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 Očakávaný výsledok: 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
Odpoveď od AI
V uvedenom príklade SQL dopyt správne implementuje výpis zoznamu zamestnancov a ich nadriadených zo spoločnej tabuľky staff pomocou self JOIN.
Tabuľka staff obsahuje polia id, name a head_id, kde head_id je odkaz na id nadriadeného zamestnanca.
Dopyt:
SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
eje alias pre zamestnancov.mje alias pre ich manažérov.- LEFT JOIN zabezpečuje, že aj zamestnanci bez manažéra (napríklad Ivan a Bob) budú mať riadok s
manager_name= NULL.
Týmto spôsobom dopyt zobrazuje mená zamestnancov a mená ich nadriadených, ak ich majú, čo zodpovedá očakávanému výsledku.