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 Անկախ սպասվող արդյունքից: 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:

Այսպիսով, հարցումը ցուցադրում է աշխատակիցների անունները և նրանց ղեկավարների անունները, եթե կան, ինչը համապատասխանում է սպասվող արդյունքին։