SQL如何实现查找节点依赖

本文介绍了如何使用SQL进行递归查询来查找有向无环图(DAG)中的节点依赖。首先,通过问题引入,展示了一个节点依赖的例子。接着,详细说明了在PostgreSQL数据库中创建表和插入数据的过程,并提供了利用递归查询找出指定节点所有下游链条节点的SQL语句。此外,还讨论了如何修改查询以追溯节点的上游依赖,并提及了在MySQL等其他数据库中实现类似查询的方法。
摘要由CSDN通过智能技术生成

SQL如何运用递归查找有向无环图的节点依赖呢?
在这里插入图片描述

问题是这样的

例如我有以上的两个图,节点b的前置节点是a,节点c的前置节点是bd,以此类推。给出一个节点,需要找出以此节点为前置节点的所有链条节点。比如给出a,那出来的结果就是a,b,c,d,e,给出f,那出来的结果就是f,g,h,i,j,k

数据准备

创建表以及插入数据,多个前置节点用,隔开,注意,使用的是PostgreSQL数据库。

-- ----------------------------
-- Table structure for mytest
-- ----------------------------
DROP TABLE IF EXISTS "public"."mytest";
CREATE TABLE "public"."mytest" (
"node" varchar(256) COLLATE "default",
"pre_nodes" varchar(10240) COLLATE "default"
);

-- ----------------------------
-- Records of mytest
-- ----------------------------
INSERT INTO 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值