总结:mysql根据父级部门id找所有子集,根据子集部门id找所有父级

根据父级部门id找所有子集:

select dept_id,name,parent_id,order_num,company_id,deptNum,parentDeptNum from (
    select @guid idlist,
    (select @guid:=group_concat(dept_id separator ',') from sys_dept where find_in_set(parent_id,@guid) and del_flag=0) sub
    from sys_dept,(select @guid:={参数id}) vars
    where @guid is not null) tl,sys_dept t
    where find_in_set(t.dept_id,tl.idlist)

根据子集部门id找所有父级:

  SELECT t1.sort,t2.dept_id,t2.parent_id,t2.name FROM
    ( SELECT
        @r AS _id,
        ( SELECT @r := parent_id FROM sys_dept 
            WHERE dept_id = _id and del_flag=0 and dept_id != 2971 
            ) AS parent_id,
        @s := @s + 1 AS sort 
        FROM ( SELECT @r := {参数id}, @s := 0 ) temp, sys_dept 
    ) t1
    JOIN sys_dept t2 ON t1._id = t2.dept_id and t2.dept_id != 2971
    order by t1.sort desc

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值