2012-06-20 30 views
0

我已經使用startwith和connectby準備了幾個查詢來獲取具有父 - 子關係的表的所有項目。Oracle Connect By查詢結果集隨機地不在層次結構中

到目前爲止,這些查詢工作得很好。但現在,我注意到返回的層次結構並不相同。儘管數據是相同的,但層次結構以完全隨機的方式返回。

任何人都可以說明爲什麼這種情況正在發生..

下面是示例查詢:

SELECT id,loc.title Title FROM 
(SELECT level level,id id,parent_id Parent_Id,sort_order FROM table1 
START WITH parent_id=0 
CONNECT BY prior id = parent_id ORDER SIBLINGS BY sort_order) 
INNER JOIN table2 loc ON id = loc.id WHERE loc.locale=? 

回答

1

的ORDER SIBLINGS BY會做你想要什麼,如果你不裹查詢作爲內聯視圖。

,一旦你把它包起來,然後順序不再指定

我建議做直接在內部查詢的JOIN ..然後你才能通過應該工作。

+0

嗨蘭迪,謝謝你的回覆。有效。我首先做了內部連接查詢,將其封裝起來,然後將connectby應用於該內部查詢。
我有另一個只與這個查詢有關的查詢。 http://stackoverflow.com/questions/11141989/oracle-connect-by-multiple-parents。你能幫我嗎? –

+0

我標記了一個答案,我認爲在其他問題上相當不錯...很高興這個人工作:) – Randy