【发布时间】:2017-08-28 19:50:25
【问题描述】:
我有如下所示的父表和子表。
Child_table | Reference_colums | Parent_table | Referenced_columns
------------|------------------|--------------|-------------------
T1 | Clan_Id | T0 | Clan_Id
X1 | Clan_Id | T0 | Clan_Id
X2 | Clan_Id | T0 | Clan_Id
T2 | Clan_Id | T1 | Clan_Id
Y1 | Clan_Id | T1 | Clan_Id
Y2 | Clan_Id | X1 | Clan_Id
T3 | C31 | T2 | C2
T4 | C4 | T3 | C32
如果我提供输入(父表 = T0 子表为 T4) 我应该得到输出
Child_table | Reference_colums | Parent_table | Referenced_columns
------------|------------------|--------------|-------------------
T1 | Clan_Id | T0 | Clan_Id
T2 | Clan_Id | T1 | Clan_Id
T3 | C31 | T2 | C2
T4 | C4 | T3 | C32
由于 T4 和 T0 之间的访问路径是 T0->T1->T2->T3->T4
您能帮我在 Oracle 中编写 SELECT 查询吗
【问题讨论】:
-
REFERENCE_COLUMNS和REFERENCED_COLUMNS列在问题陈述中的作用是什么? -
您需要
CONNECT BY子句才能完成这项工作。 -
@DavidAldridge 或递归 Cte.