0

親と子の関係を持つテーブルのすべてのアイテムをフェッチするために、startwithとconnectbyを使用していくつかのクエリを準備しました。

今まで、これらのクエリは完全に正常に機能していました。しかし今、私は返された階層が同じではないことに気づきました。データは同じですが、階層は完全にランダムな方法で返されます。

なぜこれが起こっているのか誰かが提案できますか?

以下はサンプルクエリです。

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=?
4

1 に答える 1

1

クエリをインラインビューとしてラップしない場合、ORDERSIBLINGSBYは必要な処理を実行します。

折り返すと、順序は指定されなくなります

内部クエリで直接JOINを実行することをお勧めします。そうすれば、byによる注文が機能するはずです。

于 2012-06-20T14:06:05.490 に答える