有些时候需要用到自连接查询比如:查询员工及其领导的信息
使用场景
查找父子关系:如员工和他们的领导、产品分类和子分类等。
查找层级结构:如组织结构中的上下级关系。树形表,权限管理的菜单。
比较同一张表中不同记录之间的某种关联关系。
实际应用
假设你想查询每个员工及其领导的姓名,你可以使用自连接(SELF JOIN),通过 LEADER 字段来匹配领导的 EMPLOYEEID。
SELECT e1.EMPLOYEEID AS EMPLOYEE_ID,
e1.NAME AS EMPLOYEE_NAME,
e2.EMPLOYEEID AS LEADER_ID,
e2.NAME AS LEADER_NAME
FROM T_EMPLOYEE e1
LEFT JOIN T_EMPLOYEE e2 ON e1.LEADER = e2.EMPLOYEEID;
e1和e2都是t_emplpyee这一张表。
查询某个领导及其下属的信息
SELECT e1.EMPLOYEEID AS EMPLOYEE_ID,
e1.NAME AS EMPLOYEE_NAME,
e1.JOBLEVEL AS EMPLOYEE_JOBLEVEL,
e2.EMPLOYEEID AS LEADER_ID,
e2.NAME AS LEADER_NAME
FROM T_EMPLOYEE e1
JOIN T_EMPLOYEE e2 ON e1.LEADER = e2.EMPLOYEEID
WHERE e2.NAME = 'Leader_Name';