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 Gaidāms saņemt: 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
Atbilde no AI
Dotajā piemērā SQL vaicājums pareizi realizē darbinieku un viņu vadītāju saraksta izvadīšanu no vienas tabulas staff, izmantojot self JOIN.
Tabula staff satur laukus id, name un head_id, kur head_id ir atsauce uz vadītāja id.
Vaicājums:
SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
eir aizstājvārds darbiniekiem.mir aizstājvārds viņu vadītājiem.- LEFT JOIN nodrošina, ka pat darbinieki bez vadītāja (piemēram, Ivans un Bobs) saņems rindu ar
manager_name= NULL.
Tādējādi vaicājums parāda darbinieku vārdus un viņu vadītāju vārdus, ja tie ir, kas atbilst gaidītajam rezultātam.