日期:2014-05-18  浏览次数:20582 次

如何取得下属部门的员工?

dept_id   super_dept_id   dept_name
      1                   0                     中国公司
      2                   1                     北京分公司
      3                   1                     广东分公司
      4                   2                     北京东城区分公司
      5                   2                     北京海淀区分公司
      6                   3                     广东广州分公司
      7                   3                     广东深圳分公司
---
形式如:
中国公司
      北京分公司
            北京东城区分公司
            北京海淀区分公司
      广东分公司
              广东广州分公司
              广东深圳分公司
表员工表:
staff_id     dept_id(部门ID)   staff_name
      1                           2                           小经
      2                           4                           小强
      3                           5                           小公
如要取得北京分公司的员工,就可以得到北京分公司下属的员工.




------解决方案--------------------
select * from 表员工表 where dept_id = (select dept_id from 部门表 where dept_name = '北京分公司 ')

------解决方案--------------------
select * from 员工表 where depart_id=(select dept_id from 部门表 where dept_name = '北京分公司 ') or 
depart_id=(select b.dept_id from 部门表 a join 部门表 b on a.super_dept_id=b.dept_id where a.dept_name = '北京分公司 ')