前提:
(表名称为operate_permission)
即,有id为主键,parent_id为父级的id
/***************以下字段可以根据需求变更,但是必须要对应起来***********/
1.查询所有子级数据
1.1.语句子级数据
SQL语句如下:
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.parent_id='1'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON c.id = m.parent_id
)
select id,parent_id from cte t;
1.2.结果:
2.查询自身以及父级数据
2.1表结构不变,代码如下
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.id='4'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON m.id = c.parent_id
)
select id,parent_id from cte t;
2.2结果如下:
3.查询自身以及所有子集数据
3.1语句
WITH recursive cte as
(
select a.id,a.parent_id from operate_permission a where a.id='1'
union all
select m.id, m.parent_id from operate_permission m INNER JOIN cte c ON c.id = m.parent_id
)
select id,parent_id from cte t;
3.2结果
剩下一个查询父级所有数据,类似就不写了