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 Gözlənilən nəticə: 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 უზრუნველყოფს იმას, რომ even თანამშრომლები, რომლებსაც მენეჯერი არ აქვთ (მაგალითად, ივან და ბობი), მიიღებენ ხაზს, სადაც
manager_nameიქნება NULL.
ამ გზით, სვეტმა აჩვენებს თანამშრომლების სახელებს და მათი მენეჯერების სახელებს, თუ ისინი არსებობენ, რაც შეესაბამება მოსალოდნელ შედეგს.