得到所有父母的身份证

时间:2013-07-22 13:32:21

标签: sql oracle

我已经提出了一个请求,它应该返回所有id和那些父级的id,直到树的高位为止:

SELECT co.id 
 from t_factory co 
start with co.id in (21,36) 
CONNECT BY PRIOR co.id = co.id_parent

所以在这里,in()中的值以编程方式应用(没问题)。

父亲在列id_parent中,例如我有一行:

id   id_parent
-----------
36   20
20   31
31   52

但是,我读到start withconnect by prior必须允许我在[{1}}

中获取所有id的父母

但它只返回21和36,而它也应该返回这样的父值:36,20,31,52。我是对的吗?

我该怎么做?

1 个答案:

答案 0 :(得分:3)

尝试另一个方向:PRIOR co_parent.id = co.id而不是PRIOR co.id = co.id_parent

SELECT co.id 
from t_factory co 
start with co.id in (21,36) 
CONNECT BY PRIOR co.id_parent = co.id