2012-10-05 59 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。 –

回答