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

SQL Server:如何从单表的父子列中查询祖孙关系

查询祖父与孙子的对应关系

要获取祖父(A)和孙子(C)的对应关系,我们可以通过**自连接(Self-Join)**同一张表来实现,因为我们需要关联三代人之间的父子关系:

思路解析

你的表中存储的是直接的父子关系,要找到祖父和孙子的关系,其实就是找到中间节点(父亲B)的上一代和下一代:

  • 第一次引用表(别名t1):记录祖父→父亲的关系(A→B)
  • 第二次引用表(别名t2):记录父亲→孙子的关系(B→C)
  • 通过t1.son_id = t2.father_id的条件连接这两个引用,就能把祖父和孙子关联起来

SQL 查询语句

SELECT 
    t1.father_id AS grandfather_id,
    t2.son_id AS grandchild_id
FROM 
    your_table_name t1
JOIN 
    your_table_name t2 ON t1.son_id = t2.father_id;

结果说明

代入你提供的数据后,查询结果会是:

grandfather_id | grandchild_id
-------------------------------
A              | C

扩展说明

如果你的表中存在更多层级的亲属关系(比如曾祖父、曾孙子),可以使用**递归CTE(Common Table Expression)**来处理任意深度的层级关系,但针对当前只需要祖父-孙子的场景,自连接是最简单高效的方案。

内容的提问来源于stack exchange,提问作者Ashish Kumar Saini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:14:17