Mysql:通过一张表里的父子级,递归查询并且分组分级

表:gc_jzst_single_base

需求:要求返回这张表里符合条件的数据,且有父子级关系的,展示为同一组且分级,给后续业务调用

代码

sql 复制代码
WITH RECURSIVE t1 AS (
	SELECT
		single_id,
		old_build_single_id,
		single_name,
		bulid_code,
		1 AS LEVEL,
		single_id groupFlag 
	FROM
		gc_jzst_single_base 
	WHERE
		single_assort = '1' 
		AND build_status != '0' 
		AND single_type = 'DWGC_DTLX_0802' 
		AND old_build_single_id IS NULL UNION ALL
	SELECT
		b.single_id,
		b.old_build_single_id,
		b.single_name,
		b.bulid_code,
		t1.LEVEL + 1,
		t1.groupFlag 
	FROM
		gc_jzst_single_base b
		JOIN t1 
	WHERE
		b.old_build_single_id = t1.single_id 
		AND b.single_assort = '1' 
		AND b.build_status != '0' 
		AND b.single_type = 'DWGC_DTLX_0802' 
		AND b.old_build_single_id IS NOT NULL 
	) -- 终止条件部分
SELECT
	* 
FROM
	t1 
ORDER BY
	groupFlag;

结果:满足条件

相关推荐
Ha_To5 小时前
2026.1.20 SQL Server命令
数据库
智在碧得5 小时前
碧服打造DataOps全链路闭环,定义大数据工程化发布新标杆
大数据·网络·数据库
IvorySQL6 小时前
PostgreSQL 性能:云端与本地的延迟分析
数据库·postgresql
wangbing11256 小时前
分组取前几位
数据库
Elastic 中国社区官方博客6 小时前
使用瑞士风格哈希表实现更快的 ES|QL 统计
大数据·数据结构·sql·elasticsearch·搜索引擎·全文检索·散列表
给我来一根7 小时前
用户认证与授权:使用JWT保护你的API
jvm·数据库·python
林鸿群7 小时前
ubuntu 26.04 安装mysql-server
linux·mysql·ubuntu
_F_y7 小时前
MySQL表的操作
android·数据库·mysql
SmartBrain7 小时前
Agent 知识总结
服务器·数据库·笔记
pengweizhong7 小时前
Dynamic‑SQL2 查询篇:MyBatis 增强利器,让 SQL 像写 Java 一样丝滑
java·sql·教程