我本能地解決了這個任務,但仍然不明白在這種情況下自我加入是如何作業的。你能解釋一下這里包含什么 e1 和 e 表嗎?我們從自連接獲得的表在這里包含什么?
select e.first_name, e.salary, e.id, e.manager_id, e.employee_title
from employee e
join employee e1 on e1.id = e.manager_id
where e.salary > e1.salary
order by e.manager_id;
uj5u.com熱心網友回復:
這里的員工表包含員工與其經理之間的層級關系。
通過自我加入,您可以獲得所有員工及其直接經理(在 e1.id = e.manager_id 上)。e1 別名可以更好地重命名為 m 或 mgr 或其他名稱,以表明它包含匹配的管理器。立即進行選擇更容易理解。
SELECT e.first_name, e.salary, e.id, e.manager_id, e.employee_title
, mgr.first_name -- added to clarify
FROM employee e
JOIN employee mgr on mgr.id = e.manager_id
WHERE e.salary > mgr.salary
ORDER BY e.manager_id;
此外,在當前的 where 條件下,您只選擇薪水高于其經理的員工。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514708.html
上一篇:獲取每個用戶的最后一條記錄
