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 Lūdzam sagaidīt: 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
Atsakymas iš AI
Pateiktame pavyzdyje, SQL užklausa teisingai įgyvendina darbuotojų ir jų vadovų sąrašo rodymą iš tos pačios lentelės staff naudodama self JOIN.
Lentelė staff turi laukus id, name ir head_id, kur head_id yra nuoroda į vadovo id.
Užklausa:
SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
eyra alias darbuotojams.myra alias jų vadovams.- LEFT JOIN užtikrina, kad net darbuotojai be vadovo (pvz., Ivan ir Bob) turės eilutę su
manager_name= NULL.
Taip užklausa rodo darbuotojų vardus ir jų vadovų vardus, jei jie yra, kas atitinka tikėtiną rezultatą.