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;

结果:满足条件

相关推荐
2401_833033622 分钟前
CSS Flex布局中如何设置子元素间距_掌握gap属性的现代用法
jvm·数据库·python
阿坤带你走近大数据3 分钟前
OracleSQL优化案例-3
数据库·oracle·sql优化
空空潍3 分钟前
MySQL存储引擎与索引深度解析
后端·sql·mysql·innodb
iuvtsrt4 分钟前
SQL如何优化子查询的性能_改写为JOIN关联查询与消除嵌套
jvm·数据库·python
2403_883261095 分钟前
C#怎么使用并发集合 C#ConcurrentDictionary和ConcurrentQueue线程安全集合怎么用【进阶】
jvm·数据库·python
m0_470857646 分钟前
如何加固SQL系统架构_采用读写分离降低攻击影响
jvm·数据库·python
2401_884454156 分钟前
Golang如何写博客系统后端_Golang博客系统教程【技巧】
jvm·数据库·python
2301_779622417 分钟前
JavaScript中利用Range对象实现复杂的文本选择操作
jvm·数据库·python
m0_741481788 分钟前
Go语言怎么做接口签名_Go语言API签名验证教程【精通】
jvm·数据库·python
2401_884454158 分钟前
CSS实现浮动图标与文本居中对齐_配合浮动与flex
jvm·数据库·python