从一个表查询子/父关系

时间:2013-09-09 14:06:24

标签: sql oracle

我有一张桌子,我在同一张桌子上有父母和孩子,如何获得子姓= xyz的子父关系?

SELECT C.RQ_REQ_ID, C.RQ_FATHER_ID, C.RQ_REQ_NAME
FROM REQ C, REQ P
WHERE C.RQ_FATHER_ID =+ P.RQ_REQ_ID AND P.RQ_REQ_NAME = 'XYZ'

我想要的结果

RQ_REQ_ID        RQ_FATHER_ID      RQ_REQ_NAME
------------------------------------------------------
0                 -1               Requirement
1                 0                EP Release
363               1                UAT
364               363              2013
438               364              XYZ

提前多多感谢。

1 个答案:

答案 0 :(得分:2)

您的查询看起来像使用Oracle,因此这种递归查询应该有效:

SELECT rq_req_id, rq_father_id, rq_req_name
  FROM req
CONNECT BY rq_req_id = PRIOR rq_father_id
START WITH rq_req_name = 'XYZ';