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;

结果:满足条件

相关推荐
Bdygsl2 分钟前
MySQL(6)—— 视图
数据库·mysql
oradh4 分钟前
数据库入门概述
数据库·oracle·数据库基础·数据库入门
BullSmall11 分钟前
一套定制化高级 payload 合集
数据库·安全性测试
zbdx不知名菜鸡25 分钟前
postgre sql 数据库查询优化
数据库·postgresql
9稳39 分钟前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc
四七伵1 小时前
Spring Boot项目中varchar字段为什么不用NULL?告别空指针从建表开始
数据库·后端
Mr.45671 小时前
JDK17+Druid+SpringBoot3+ShardingSphere5 多表分库分表完整实践(MySQL+PostgreSQL)
java·数据库·spring boot·mysql·postgresql
Elastic 中国社区官方博客1 小时前
使用 ES|QL 变量控件将仪表板转变为调查工具
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
feng68_1 小时前
Ansible还原数据库节点
linux·运维·数据库·ansible
乐hh1 小时前
清理MySQL数据
数据库·mysql