惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
有赞技术团队
有赞技术团队
博客园_首页
IT之家
IT之家
爱范儿
爱范儿
量子位
小众软件
小众软件
Jina AI
Jina AI
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
The Cloudflare Blog
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
雷峰网
雷峰网
V
Visual Studio Blog
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题

博客园 - 如.若

Linux系统负载过高问题排查 Git 配置 ssh-key 免密登录 cron表达式详解 Spring Boot 使用 EnvironmentPostProcessor 接口实现加载外部配置文件 AdoptOpenJDK(JAVA环境)安装 JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置 JAVA 多线程基础 SQL 存储过程游标应用 Spring ClassPathResource加载资源文件详解 浅谈web项目读取classpath路径下面的文件 SpringBoot+SpringSecurity+SpringSession实现一个前后端分离的权限管理系统 Spring Security 中 CSRF 防御源码解析 Redis 持久化 SpringBoot 如何防御 CSRF 攻击 SimpleDateFormat线程不安全的5种解决方案 数据库建模-规范 接口的幂等性怎么设计? TOP命令结果分析 Redis配置参数详解
SQL 语句实现查询子父节点
如.若 · 2021-08-11 · via 博客园 - 如.若

1. 查询所有父节点

SELECT T2.* FROM ( 
    SELECT 
       @R AS _id,
         ( SELECT @R := PARENT_ID FROM sys_org WHERE ID = _id ) AS PARENT_ID,
         @L := @L + 1 AS LVL 
    FROM 
       (SELECT @R := #{要查询的节点id}, @L := 0) VARS, sys_org h 
    WHERE @R <> 0
) T1 INNER JOIN sys_org T2 ON T1._id = T2.ID
ORDER BY T1.LVL DESC;

2.查询所有子节点

SELECT T4.* FROM ( 
    SELECT * FROM (
        SELECT
            t1.id,
            IF( FIND_IN_SET( PARENT_ID, @pids ) > 0, @pids := CONCAT( @pids, ',', id ), 0 ) AS isChild 
        FROM 
            ( SELECT id, PARENT_ID FROM sys_org t ORDER BY id ) t1,
            ( SELECT @pids := #{要查询的节点id} ) t2 
    ) t3 WHERE isChild <> 0 
) t INNER JOIN sys_org T4 ON T4.ID = t.id