员工与经理
员工与经理
SELECT e.name AS employee,
m.name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id
ORDER BY e.id;| 别名 | 两侧必须不同,否则引用歧义或报重复表名 |
|---|---|
| 连接类型 | 用 LEFT JOIN 保留没有上级的员工 |
| 深层级 | 层级超过一层时用递归 CTE |
同一张表连接自身:员工与经理、成对比较等场景;必须用两个不同别名区分两侧,否则无法引用。
SELECT e.name AS employee,
m.name AS manager
FROM employees e
LEFT JOIN employees m ON m.id = e.manager_id
ORDER BY e.id;| 别名 | 两侧必须不同,否则引用歧义或报重复表名 |
|---|---|
| 连接类型 | 用 LEFT JOIN 保留没有上级的员工 |
| 深层级 | 层级超过一层时用递归 CTE |