MySQL如何返回特定查询结果?自关联表替换manager_id为对应名称
自引用表替换manager_id为对应名称的SQL查询
当前表结构与数据
id name manager_id 1 mike 5 2 lisa 3 3 tom NULL 4 andy 3 5 brian NULL
期望结果
id name manager_id 1 mike brian 2 lisa tom 3 tom NULL 4 andy tom 5 brian NULL
解决方案
使用**自连接(LEFT JOIN)**实现,通过关联同表的id和manager_id字段,将manager_id对应的名称替换进来,同时保留NULL值:
SELECT e.id, e.name, m.name AS manager_id FROM 你的表名 e LEFT JOIN 你的表名 m ON e.manager_id = m.id;
说明
- 用
LEFT JOIN而非INNER JOIN,是为了确保manager_id为NULL的记录不会被过滤,依然保留在结果集中 - 将
你的表名替换成实际的表名称即可执行 - 最终结果中,
manager_id列会显示对应管理者的名称,原NULL值保持不变
内容的提问来源于stack exchange,提问作者Bradley Woodle
相关产品推荐
相关产品推荐

