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

表层级结构自连接查询:获取指定子节点的多级父节点名称

三级父节点名称查询方案

嘿,针对你要查询childid为53047的父、祖父、曾祖父节点名称的需求,我整理了一个清晰的SQL查询方案,直接就能用:

核心SQL查询语句

SELECT
    n1.name AS parent_name,
    n2.name AS grandparent_name,
    n3.name AS great_grandparent_name
FROM
    hierarchy h1
LEFT JOIN hierarchy h2 ON h1.parentid = h2.childid
LEFT JOIN hierarchy h3 ON h2.parentid = h3.childid
LEFT JOIN Names n1 ON h1.parentid = n1.location_id
LEFT JOIN Names n2 ON h2.parentid = n2.location_id
LEFT JOIN Names n3 ON h3.parentid = n3.location_id
WHERE
    h1.childid = 53047;

代码逻辑解释

  • 我们通过三次自连接hierarchy表,逐级向上追溯节点:
    • h1对应目标节点(childid=53047),h1.parentid就是它的父节点
    • h2关联h1的父节点,h2.parentid就是祖父节点
    • h3关联h2的父节点,h3.parentid就是曾祖父节点
  • 再分别将这三个父节点的ID和Names表关联,拿到对应的名称
  • 使用LEFT JOIN是为了避免某一级节点不存在时,整个查询返回空结果(如果确定三级节点都存在,也可以换成INNER JOIN)

预期输出

查询结果会包含三列:

  • parent_name:目标节点的父节点名称
  • grandparent_name:目标节点的祖父节点名称
  • great_grandparent_name:目标节点的曾祖父节点名称

内容的提问来源于stack exchange,提问作者Mona Addagatla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:04:58