2012-10-05 60 views
0

我有GROUPsUSERsGROUPs可以包含USERs和其他GROUPs如何獲取羣組成員名單

數據存儲在一個表中,如下所示NODES,其中PARENT_NDE_ID是組/用戶包含的父級。用戶始終擁有一個是組的ID的父代。如果該組沒有父節點,則父節點ID和組ID相等。

NODES 
----- 
NDE_ID (int) 
PARENT_NDE_ID (int) 
DESCRIPTION (string, any name) 
NDE_TYPE (string, either 'USER' or 'GROUP') 

我的問題是,我想獲得一個組的成員名單。

我想生產兩種:

GROUP NAME | MEMBER NAME 
--- 
Group A | Group B 
Group A | Bob 
Group B | Dave 
Group C | Mike 

或者接受組名,給我的成員名單,我可以每個組的名稱手動運行,像構建查詢:

select NODES.DESCRIPTION, NODES.NDE_TYPE 
where PARENT_NDE_ID = (the id associated with the provided group name string) 

任何幫助大大apprecaited!

+0

你在什麼平臺/ sql dielect?或者它必須是獨立的? (在Sql Server的情況下,查找的標籤是'遞歸公用表表達式')乍一看 – KekuSemau

+0

@KekuSemau它是一個Oracle分貝。希望這可以幫助!除了基本的select,insert,update語句之外,我並不是一個SQL人員。 –

+0

這是一個複雜的SQL語句。它需要遞歸確定組成員資格。在Oracle中,您使用'CONNECT BY'關鍵字來完成此操作。但是,我沒有足夠的使用它來編寫SQL。 –

回答