查詢機構部門使用者樹

2021-09-01 14:14:25 字數 1324 閱讀 5525

首先說說我們的資料結構:機構表sys_organization(id,parent_organ,organ_******_name,orderby)

,部門表sys_department(id,parent_department,sys_organization,department_name,orderby)

(因為部門是掛在機構下面的,對於上級部門即parent_department為空的那些部門則是直接掛在機構下面,

而parent_department不為空的話則是掛在部門下面),使用者表sysuser(id,sys_department,user_name,orderby)

(對於使用者則是直接掛在部門下面的)

select rs.*,level from (

select 'org'||org.id id,'org'||org.parent_organ pid,org.organ_******_name showname,org.orderby orderby from sys_organization org where org.is_valid=1

union all

select 'dep'||dep.id id,'org'||dep.sys_organization pid,dep.department_name showname,dep.orderby orderby from sys_department dep where dep.is_valid=1 and dep.parent_department is null

union all

select 'dep'||dep.id id,'dep'||dep.parent_department pid,dep.department_name showname,dep.orderby orderby from sys_department dep where dep.is_valid=1 and dep.parent_department is not null

union all

select 'usr'||su.id id,'dep'||su.sys_department pid,su.user_name showname,su.orderby orderby from sysuser su where su.is_valid=1

)rs connect by rs.pid=prior rs.id start with rs.id='org1' order siblings by rs.orderby

這樣就可以查出按機構部門使用者構成樹,同時內部使用orderby排序順序的乙個查詢結果

以上內容抄自原來公司陳總,鏈結

這是oracle中的用法,mysql中好像沒有,不過簡單的mysql可以拼出來

connect by 查出機構部門使用者樹

之前一直有這麼乙個問題總是覺得不能用sql直接解決 資料庫裡面儲存了樹形結構,並且每一層都按乙個orderby欄位排序,怎麼使用乙個sql直接查出樹形結構從上到下的順序呢?今天終於有時間研究了一下,下面把資料庫結構和sql貼出來大家一起參考一下。首先說說我們的資料結構 機構表sys organiza...

組織機構樹查詢

組織機構樹遞迴查詢 查詢父級節點的所有子節點 select organizational id,organizational name,parent id from sys organizational where is used 1 start with parent id 父級節點id conn...

機構使用者管理

通過 系統管理 機構使用者管理 可以進入機構和使用者管理介面。基本概念 機構是指組織內部的組成結構,機構按照樹形結構組成上下級關係。使用者可以屬於機構樹中的任意乙個機構,並非只能屬於最下級機構。但每個使用者只能屬於乙個機構。機構管理 機構的基本資訊包括 機構編碼 機構名稱 機構描述 上級機構。對機構...