怎样把某一部门与它所有上级部门按照一对多列表查询出来啊,递归怎样写
你可以参考是不是这样: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公用表表达式
直接关联不行吗