SQL递归查询树结构语法

对于树形结构数据,经常会有递归查询的需求,语法如下:

注意替换sql中的表名id入参

mysql

sql 复制代码
WITH RECURSIVE node_cte (id, parent_id) 
AS (
  SELECT id, parent_id 
  FROM my_table -- 表名,换成要查询的名称
  WHERE id = :id -- 根节点id,换成要查询的根节点id
  UNION ALL
  SELECT t.id, t.parent_id 
  FROM my_table t
  JOIN node_cte nc ON t.parent_id = nc.id
)
SELECT * 
FROM my_table 
WHERE id IN (SELECT id FROM node_cte)

postgresql

sql 复制代码
WITH RECURSIVE node_cte AS (
  SELECT id, parent_id
  FROM my_table -- 表名,换成要查询的名称
  WHERE id = :id -- 根节点id,换成要查询的根节点id
  UNION ALL
  SELECT t.id, t.parent_id
  FROM my_table t -- 表名,换成要查询的名称
  JOIN node_cte nc ON t.parent_id = nc.id
)
SELECT *
FROM sp_permission
WHERE id IN (SELECT id FROM node_cte) order by id;
相关推荐
Jay Kay1 小时前
跳跃表可视化深度解析:动态演示数据结构核心原理
数据结构·数据库
测试者家园1 小时前
慢查询日志在性能优化中的价值
sql·性能优化·性能测试·慢查询·持续测试·智能化测试
千册4 小时前
python+pyside6+sqlite 数据库测试
数据库·python·sqlite
java叶新东老师5 小时前
PowerDesigner 画ER图并生成sql 教程
数据库·sql
Jonariguez6 小时前
Mysql InnoDB存储引擎
数据库·mysql
nbsaas-boot7 小时前
SQL Server 窗口函数全指南(函数用法与场景)
开发语言·数据库·python·sql·sql server
Y.ppm7 小时前
数分思维12:SQL技巧与分析方法
数据库·sql
森叶7 小时前
Claude Code 安装向量数据库MCP服务
数据库
bestsun9997 小时前
Time drifts can result in unexpected behavior such as time-outs.
数据库·oracle
waveee1238 小时前
学习嵌入式的第三十四天-数据结构-(2025.7.29)数据库
数据结构·数据库·学习