2015-12-18 57 views
0

我的表結構找到任何父級的Oracle 10g中最詳細的

| Parent ID | ID   | 
|-------------|-------------| 
|  a  |  b  | 
|  b  |  c  | 
|  b  |  d  | 
|  b  |  e  | 
|  c  |  f  | 
|  d  |  g  | 
|  e  |  h  | 

我想所有父母最子節點。 在另一張表中我有a,b和c。然後我想獲得下面的結果。

| Parent_ID | Child  | 
|-------------|-------------| 
|  a  |  f  | 
|  a  |  g  | 
|  a  |  h  | 
|  b  |  f  | 
|  b  |  g  | 
|  b  |  h  | 
|  c  |  f  | 

f,g,h是最低的粒度。

+1

[大問題(http://stackoverflow.com/問題/ 34348681 /找到最母親節點的父 - 任何級別的在oracle中)是絕對夠用的 – Tatiana

回答

0

首先,你應該確保你使用的是Oracle的願景10g或更高版本,然後使用CONNECT_BY_ISLEAF,你可以嘗試更多地瞭解connect_by

select connect_by_root a.id as id,a.parent_did 
    from table1 a inner join table2 b on a.id=b.id 
    where connect_by_isleaf = '1' 
    CONNECT BY PRIOR a.parent_did = a.id;