You need to enable JavaScript to run this app. 如何编写SQL实现上一行col2匹配下一行col1的链式递归查询
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL实现上一行col2匹配下一行col1的链式递归查询

链式递归查询SQL实现方案

测试表结构(表名:test_table)

IDcol1col2
1104A103A
2301A300A
3103A101A
4102A101A
5201A200A
6101A100A

注:原表结构标注的第三列coll2为笔误,已按业务关联逻辑统一修正为col2

需求说明

指定起始查询条件col1 = '104A',按照上一行选中记录的col2值匹配下一行记录的col1值的规则,递归返回所有符合关联规则的记录。

实现代码

以下SQL兼容MySQL 8.0+、PostgreSQL、SQL Server、Oracle等所有支持递归CTE语法的主流数据库:

WITH RECURSIVE chain_query AS (
    -- 锚点成员:查询起始条件匹配的第一行记录
    SELECT ID, col1, col2
    FROM test_table
    WHERE col1 = '104A'

    UNION ALL

    -- 递归成员:关联匹配上一行的col2 = 当前行的col1,迭代查询后续关联行
    SELECT t.ID, t.col1, t.col2
    FROM test_table t
    INNER JOIN chain_query cq ON t.col1 = cq.col2
)
-- 输出全部链式关联结果
SELECT * FROM chain_query;

输出结果

完全匹配预期输出:

IDcol1col2
1104A103A
3103A101A
6101A100A

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:06:04