查找所有上级部门按照层级顺序纵向列表

怎样把某一部门与它所有上级部门按照一对多列表查询出来啊,递归怎样写

你可以参考是不是这样:https://blog.csdn.net/BlackArmand/article/details/124521238

搞个自定义函数,得到所有的上级ID,然后通过ID去获取数据就OK了
CREATE FUNCTION getOrgParent (orgNo varchar(32)) RETURNS varchar(1000) CHARSET utf8
BEGIN
-- 定义临时变量
DECLARE tmpOrg varchar(1000) DEFAULT '';
-- 循环查询,orgNo不为空,则循环
WHILE orgNo IS NOT NULL DO
-- 拼接所有查询结果
IF tmpOrg = '' THEN
SET tmpOrg = CONCAT(tmpOrg, orgNo);
ELSE
SET tmpOrg = CONCAT(tmpOrg, ',', orgNo);
END IF;
-- 查询数据
SELECT group_concat(p_org_no) INTO orgNo FROM org_test WHERE FIND_IN_SET(org_no, orgNo) > 0;
END WHILE;

-- 返回结果
RETURN tmpOrg;

MySQL8支持CET公用表表达式

参考:

Mysql中的递归层次查询(父子查询)_weixin_34257076的博客-CSDN博客 最近遇到了一个问题,在mysql中如何完成节点下的所有节点或节点上的所有父节点的查询?在Oracle中我们知道有一个Hierarchical Queries可以通过CONNECT BY来查询,但是,在MySQL中还没有对应的函数!!!下面给出一个function来完成的方法下面是sql脚本,想要运行的直接赋值粘贴进数据库即可。创建表treenod... https://blog.csdn.net/weixin_34257076/article/details/90631230?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-90631230-blog-124521238.pc_relevant_blogantidownloadv1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-90631230-blog-124521238.pc_relevant_blogantidownloadv1&utm_relevant_index=1

直接关联不行吗