要查询MySQL表中的组织机构树,包括本级以及本级以下的所有数据,可以使用递归查询或者使用带有层级关系的查询。

以下是使用递归查询的方法:

首先,创建一个表来存储组织机构树的数据。假设表名为organization,包含以下字段:idnameparent_id

CREATE TABLE organization (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  parent_id INT
);

然后,插入一些示例数据:

INSERT INTO organization (id, name, parent_id) VALUES
(1, '组织A', NULL),
(2, '组织B', 1),
(3, '组织C', 1),
(4, '组织D', 2),
(5, '组织E', 2),
(6, '组织F', 3),
(7, '组织G', 3);

接下来,使用递归查询来获取本级以及本级以下的所有数据。假设要查询的本级组织机构的id为1:

WITH RECURSIVE cte AS (
  SELECT id, name, parent_id
  FROM organization
  WHERE id = 1
  UNION ALL
  SELECT o.id, o.name, o.parent_id
  FROM organization o
  INNER JOIN cte ON o.parent_id = cte.id
)
SELECT *
FROM cte;

这将返回本级以及本级以下的所有组织机构数据。

带有层级关系的查询方法如下:

SELECT t1.id, t1.name, t1.parent_id, t2.id AS child_id, t2.name AS child_name
FROM organization t1
LEFT JOIN organization t2 ON t2.parent_id = t1.id
WHERE t1.id = 1

这将返回本级组织机构以及其下级组织机构的数据

mysql表关联组织机构树查询本级以及本级以下的所有数据

原文地址: http://www.cveoy.top/t/topic/iKsn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录