2010-12-08 10 views
1

私は2つの列を1つは親のidで、onotherは子のidであり、childは別の子の親であることができるというテーブルを持っているとします。 ...私は私にこのような出力を与えるクエリを記述しようとしています。このsqlクエリを使用して特定の順序で親の子を表示する方法

 
Parent id  Child id 
p1    c1 
c1    c2 
p1    c3 
c1    c4 
p3    c5 
p3    c6 
c4    c7 
c5    c8 

のようなもの.......

 
Parent id  Child id 
p1    c1  
p1    c3 
c1    c2 
c1    c4 
c4    c7 
p3    c5 
p3    c6 
c5    c8 
c8 ..................and so on.....

Guysは私を助けてください... 感謝事前に....

+0

出力の要件として具体的になることはできますか?私はあなたの例から何かを推論することができますが、確信が持てません。 –

+0

階層的な検索を意味する場合、この問題の解決策はデータベースに依存します。質問にタグとしてdbmsを追加すると、より迅速でより良い回答が得られます。 – Ronnis

+0

@James Wiseman ya、問題を適切に指定しないと申し訳ありません...その最初のものは、最初の親とその子であるルートノードを取得したいのですが、次にその子が別の子を持つ場合、 (木構造のように)2番目の親と同じものを葉ノードまで再開します。最後の親の葉ノードまでプロセスを続行します。 – Vivek

答えて

0

私はそれを正しく理解していれば、あなたは(あなたがあなたのアプリケーションでは、ツリー構造のいくつかの種類を構築している?)それぞれの親の中に注文した子どもたちや子供たちの前に両親を必要

シンプル

SELECT * 
FROM Table 
ORDER BY ParentID, ChildID 

は、トリックを行う必要があります。

+0

この解決法は場合によっては機能するかもしれませんが、ツリー/リストの下の行が親の後に入力された(したがってIDが高い)と仮定しています。並べ替えられたリスト、またはその場所全体にアイテムを投げることができるツリーがある場合、このクエリは最終的には失敗します。 – Teekin

関連する問題