Sobes.tech
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
  • e ir aizstājvārds darbiniekiem.
  • m ir 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.