在我工作的当前项目中,遇到了一个特殊情况。请考虑以下表结构:跨多个表的Oracle分层查询
AGY_AGENCY (
AGENCY_ID NUMBER(9) not null,
AGENCY_CD VARCHAR2(30) not null,
AGC_LEG_CD VARCHAR2(30) not null,
........................
)
AGY_RELN (
AGY_RELN_ID NUMBER(9) not null,
AGENCY_ID NUMBER(9) not null, -- Refers to AGY_AGENCY.AGENCY_ID
RELATIONSHIP_LINK_TYPE VARCHAR2(30) not null,
............................
)
AGY_REL_AGENCY (
REL_AGY_ID NUMBER(9) not null,
AGY_RELN_ID NUMBER(9) not null, -- Refers to AGY_RELN.AGY_RELN_ID
RELN_AGENCY_ID NUMBER(9) not null, -- Refers to AGY_AGENCY.ACY_AGENCY_ID
...............................
)
下面是一个简单的数据
AGY_AGENCY
AGENCY_ID AGENCY_CD AGC_LEG_CD
--------------------------
1000, 'ABC', 'ABC'
1001, 'DEF', 'DEF'
AGY_RELN
AGY_RELN_ID AGENCY_ID RELATIONSHIP_LINK_TYPE
-----------------------------------------------
2000, 1000, 'PARENT_OUTLET'
AGY_REL_AGENCY
REL_AGY_ID AGY_RELN_ID RELN_AGENCY_ID
--------------------------------------------
3000, 2000, 1001
按照这个数据,机构“DEF”是“ABC”的父出口机构。
我需要制定一个SQL查询,将返回所有的父母,祖父母。 AGENCY_ID
s(数据可以跨越多个级别的层次结构)从特定的AGENCY_ID
开始。
做了一些研究条款“的连接”。 – OldProgrammer