关于部门表的查询

目录

笔者在工作中需要经常使用一个员工的部门id查询出这个部门的所有的上级部门信息的需求, 并且要求是按照 A/B/C/D/

表结构

员工表结构: emp-id ,emp-name,dept-id
由于部门机构最少有4级,而且以后还有可能会增加,
部门表: 这里写图片描述
部门id ,部门名字 ,部门等级,第一级部门id,直属上级部门id,
ps: 直属上级id为0 的说明他的直属上级就是 第一级部门

目的

我需要 能直接使用 员工信息表中的 直属部门id查询出这个部门的所有的上级部门的信息
所以建立视图,方便查询
如图视图的效果
这里写图片描述
那么怎么写这个 视图
采用硬编码的方式:

 SELECT 
            concat_ws('/'::text, t7.sub_company_name, t6.department_name, 
            t5.department_name, t4.department_name, t3.department_name, 
            t2.department_name, t1.department_name) AS department_name, 
    t1.emp_dept_info_id 
   FROM ((((((tbl_emp_department_info t1
     LEFT JOIN tbl_emp_department_info t2 ON ((t2.emp_dept_info_id = ((t1.supdep_code)::text)::integer)))
     LEFT JOIN tbl_emp_department_info t3 ON ((t3.emp_dept_info_id = ((t2.supdep_code)::text)::integer)))
     LEFT JOIN tbl_emp_department_info t4 ON ((t4.emp_dept_info_id = ((t3.supdep_code)::text)::integer)))
     LEFT JOIN tbl_emp_department_info t5 ON ((t5.emp_dept_info_id = ((t4.supdep_code)::text)::integer)))
     LEFT JOIN tbl_emp_department_info t6 ON ((t6.emp_dept_info_id = ((t5.supdep_code)::text)::integer)))
     LEFT JOIN tbl_emp_sub_company_info t7 ON ((t7.sub_company_id = ((t1.sub_company_id)::text)::integer)))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值