MySQL-根据部门id查询本级和上级部门

表设计:

CREATE TABLE `t_acs_dic_dept` (
  `dept_id` decimal(10,0) NOT NULL,
  `dept_name` varchar(100) DEFAULT NULL,
  `parent_id` decimal(10,0) DEFAULT NULL COMMENT '上级部门',
  `path` varchar(256) DEFAULT NULL COMMENT '路径',
  `status` decimal(1,0) DEFAULT NULL COMMENT '0:未删除,1已删除',
  `qx` int(1) NOT NULL COMMENT '0:复制,1不复制',
  `remake2` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

sql:

​
SELECT  t2.dept_id
		FROM (
				 SELECT
					 @r AS _id,
		(SELECT @r := parent_id FROM t_acs_dic_dept WHERE dept_id = _id) AS parent_id,
		@l := @l - 1 AS le
				 FROM
					 (SELECT @r := 9, @l := 9) vars,
					 t_acs_dic_dept h
				 WHERE @r  > 0) t1
				 JOIN t_acs_dic_dept t2
					  ON t1._id = t2.dept_id
		ORDER BY t1.le asc;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值