mysql 关于树形数据结构的一些操作
一、数据结构
表数据关联方式为id和parent_id字段的方式
二、根据多个子节点反查上级所有的父级节点
WITH RECURSIVE parent_nodes as (SELECT id, parent_id, task_name,1 as level,id as child_idFROM 数据表WHERE id IN(子节点ID1, 子节点ID2, 子节点ID3)UNION ALLSELECT t.id, t.parent_id, t.task_name,p.level+1 as level,p.child_idFROM 数据表 tJOIN parent_nodes p on t.id = p.parent_id
)
SELECT DISTINCT * FROM parent_nodes;
三、查找里面的所有叶子节点
select * from 数据表 where id not in (select parent_id from 数据表
)