Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql with语句

作者:一岁就很帅   发布日期:2025-04-20   浏览:124

WITH RECURSIVE department_hierarchy AS (
    -- 基础查询,选择顶级部门(即没有上级部门的部门)
    SELECT id, name, parent_id, 1 AS level
    FROM departments
    WHERE parent_id IS NULL

    UNION ALL

    -- 递归部分,选择子部门并增加层级
    SELECT d.id, d.name, d.parent_id, dh.level + 1
    FROM departments d
    INNER JOIN department_hierarchy dh ON d.parent_id = dh.id
)

-- 查询部门层级结构
SELECT * FROM department_hierarchy;

解释说明:

  • WITH 语句用于定义一个或多个临时结果集(也称为公用表表达式,CTE),这些结果集可以在后续的查询中引用。
  • RECURSIVE 关键字表示这是一个递归查询。递归查询通常用于处理层次结构数据,例如组织结构中的部门关系。
  • 在这个例子中,我们创建了一个名为 department_hierarchy 的递归 CTE,它从 departments 表中选择数据。
  • 基础查询部分选择了所有顶级部门(即 parent_idNULL 的部门),并将它们的层级设置为 1。
  • 递归部分通过自连接将每个子部门与它的父部门关联起来,并增加层级计数。
  • 最后,我们使用 SELECT 语句从递归 CTE 中获取完整的部门层级结构。

如果你需要更多关于 WITH 语句的帮助或有其他问题,请告诉我!

上一篇:mysql时间加减

下一篇:存储过程mysql

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

python mysql update

mysql 查看权限

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站