首页 >

mysql查询下级的层级数据 |mysql 存储过程 跨库

php配合mysql,mysql 01 课程简介,mysql在liunx下使用,django默认支持mysql操作,liunx关闭mysql命令,mysql 存储过程 跨库mysql查询下级的层级数据 |mysql 存储过程 跨库

大家首先需要创建一张存储层级数据的表,例如以下的“department”表:

CREATE TABLE department (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
parent_id INT
);

其中“id”字段是部门的唯一标识符,“name”字段表示部门的名称,“parent_id”字段表示父部门的ID。当一个部门没有父部门时,其“parent_id”字段设为NULL。

接下来大家将向“department”表中添加一些测试数据:

INSERT INTO department VALUES
(1, '总公司', NULL),
(2, '市场部', 1),
(3, '销售部', 2),
(4, '技术部', 1),
(5, '前端开发组', 4),
(6, '后端开发组', 4);

大家可以使用以下的递归查询方式来获取所有下级的层级数据:

WITH RECURSIVE subdepartments AS (
SELECT * FROM department WHERE id = 1
UNION ALL
SELECT d.* FROM department d
JOIN subdepartments sd ON d.parent_id = sd.id
)
SELECT * FROM subdepartments;

上述查询语句中,“WITH RECURSIVE”关键字指定了递归查询。大家首先选择了根部门(ID为1的部门),并将其加入到结果中。然后大家递归地选择了所有直接下级部门,并将它们加入到结果中。递归查询一直持续到没有下级部门时结束。

通过上述查询语句,大家可以获取所有下级部门的层级数据。


mysql查询下级的层级数据 |mysql 存储过程 跨库
  • mysql查询语,mysql多表联合查询语句怎么写 - 数据库 - 前端,mysql 获取数据库中的表
  • mysql查询语,mysql多表联合查询语句怎么写 - 数据库 - 前端,mysql 获取数据库中的表 | mysql查询语,mysql多表联合查询语句怎么写 - 数据库 - 前端,mysql 获取数据库中的表 ...

    mysql查询下级的层级数据 |mysql 存储过程 跨库
  • 使用空间索引的原则 - 数据库 - 前端|
  • 使用空间索引的原则 - 数据库 - 前端| | 使用空间索引的原则 - 数据库 - 前端| ...

    mysql查询下级的层级数据 |mysql 存储过程 跨库
  • hbase和SQL的区别 - 数据库 - 前端|
  • hbase和SQL的区别 - 数据库 - 前端| | hbase和SQL的区别 - 数据库 - 前端| ...