話不多說,直接上sql:
select dept_id,dept_name from (
select
t1.dept_id,
t1.dept_name,
if(find_in_set(parent_id, @pids) > 0, @pids := concat(@pids, ',', dept_id), 0) as ischild
from (
select
dept_id,
parent_id,
dept_name
from ls_cendev.sys_dept t order by parent_id, dept_id
) t1,
(select @pids := '112') t2
) t3 where ischild != 0 or dept_id = '112'
查詢結果:
說明:「@pids := '112'」,是你要查詢的部門,如查詢委辦局下所有部門,則條件就是『112』。
若查詢部門下所有部門去掉sql最後的「or dept_id = '112'」條件。
若查詢本部門,以及本部門下所有部門就要加上「or dept_id = '112'」條件。
若只查詢dept_id或dept_name,則根據需要查詢即可,該sql都可拿到。
查詢所有上級部門的SQL
create table testdept deptid int identity 1,1 primary key,deptname varchar 16 superdept int insert into testdept deptname,superdept values 總經辦 0 inser...
不確定下鑽數的迴圈 部門下所屬部門 多層下鑽
下鑽5層部門,無法動態確定 只能處理5層部門 for tsdepart tsd departslist 動態下鑽多層 不定下鑽次數 迴圈 public mapdoallfor tsdepart tsdepart map.put departsid departsid map.put childsli...
查詢部門及其子部門相關方案總結
公司需求 匯入員工資訊時。需判斷當前管理員的許可權,當前管理員為超級管理員時可以匯入公司所有部門的員工資訊,部門管理員只能匯入本部門及以下子部門的員工資訊,特定部門只能匯入特定部門的資訊。思考 特定部門和所有部門的容易實現,但是查詢部門及其子部門不易實現。1.方案一 可以在service層進行遞迴迴...