You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单表自关联查询匹配父级名称的SQL实现方案咨询

自关联表查询父节点名称解决方案

核心实现逻辑

你这个需求属于典型的同表自关联查询场景,表中parent_id字段关联同表的主键id,只需要将表和自身做关联查询,映射出父ID对应的名称即可。

推荐实现方式(自连接写法,兼容性最高)

把原表分别取两个别名,主别名取所有基础字段,关联别名负责映射父ID对应的名称,SQL示例如下:

SELECT 
    t1.id,
    t1.name,
    t1.country,
    t1.parent_id,
    t2.name AS name_parent_id
FROM 
    你的表名 t1
-- 如果需要保留parent_id为空/不存在的记录用LEFT JOIN,否则用INNER JOIN
LEFT JOIN 
    你的表名 t2 ON t1.parent_id = t2.id
ORDER BY t1.id;

代入你提供的测试数据,返回结果和你预期的完全一致:

  • id=1的parent_id=2,对应t2的name=Alex
  • id=2的parent_id=2,对应t2的name=Alex
  • id=3的parent_id=4,对应t2的name=Tony
  • id=4的parent_id=1,对应t2的name=Diva

可选实现方式(子查询写法)

如果你更习惯子查询的写法,也可以用关联子查询实现,逻辑和自连接一致:

SELECT 
    id,
    name,
    country,
    parent_id,
    (SELECT name FROM 你的表名 t2 WHERE t2.id = t1.parent_id) AS name_parent_id
FROM 你的表名 t1
ORDER BY id;

内容的提问来源于stack exchange,提问作者Abdul Rosid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:09:05