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

同表两列关联查询:根据Title_Root显示对应Title

解决自关联查询:获取子节点对应的根Title内容

嘿,刚接触SQL的话,这种需求其实是很典型的**自连接(self-join)**场景——我们需要从同一张表中,把有父节点(Title_Root不为null)的行和它们对应的根节点行关联起来,就能拿到你想要的结果啦。

先确认下你的表结构(我把列名统一成下划线风格,方便写SQL):

TitleTitle_Root
Anull
BA
CD
Dnull
Enull
FE

核心查询语句

你可以用下面的SQL来实现需求,我会一步步解释每个部分:

SELECT 
    t1.Title AS Child_Title,  -- 显示子节点的Title(比如B、C、F)
    t2.Title AS Root_Title    -- 显示对应的根节点Title(比如A、D、E)
FROM 
    your_table_name t1        -- 给表起别名t1,代表子节点行
JOIN 
    your_table_name t2        -- 再次引用同一张表,别名t2代表根节点行
    ON t1.Title_Root = t2.Title  -- 用子节点的Title_Root关联根节点的Title
WHERE 
    t1.Title_Root IS NOT NULL;  -- 只筛选Title_Root有值的行

结果说明

执行这个查询后,你会得到这样的结果:

Child_TitleRoot_Title
BA
CD
FE

完全符合你想要的——只显示Title_Root有值的行,并且展示对应的根Title内容。

小补充

如果你的数据里可能存在Title_Root没有对应Title的情况(比如某行Title_Root是X,但表中没有Title为X的行),可以把JOIN改成LEFT JOIN,这样即使根节点不存在,子节点的行也会被保留,Root_Title会显示为null。不过从你的示例数据来看,用普通的JOIN(也就是INNER JOIN)就足够啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:13:12