SQL递归查询:筛选自身及所有后代值均不匹配参考表的行
树形结构数据表SQL筛选需求
场景说明
我们需要从存储树形结构的数据表a中,筛选出同时满足两项条件的所有行。
筛选条件
- 条件1:当前行的
value列取值,不存在于参考表v的所有取值范围内 - 条件2:当前行的所有层级后代(包括子节点、孙节点及更深层级的后代节点)的
value列取值,同样全部不在参考表v的取值范围内
预期返回结果
以示例数据表为例,各节点返回规则如下:
- a1:不返回,违反条件2
- a2:不返回,违反条件2
- a3:不返回,违反条件1
- a4:不返回,违反条件1
- a5:返回,自身及所有后代的取值均未匹配表
v - a6:返回,自身及所有后代的取值均未匹配表
v - a7:返回,自身及所有后代的取值均未匹配表
v - a8:返回,自身及所有后代的取值均未匹配表
v
当前实现进展
已经在SQL测试环境中搭建好对应测试表结构,且完成了递归查询逻辑,可以查询到所有节点对应的树层级,需要补充后续的筛选逻辑完成需求。
内容的提问来源于stack exchange,提问作者mdc
相关产品推荐
相关产品推荐

