2017-11-15 13 views
0

私は、この表から、この
SQL - データベースの階層構造

id | parent | folder_name 
------------------------- 
1 | 0  | Root 
2 | 1  | NSW 
3 | 1  | QLD 
4 | 2  | Sydney 
5 | 3  | Brisbane 

のような値を持つテーブルを持っている私は、より高いレベルまで、すべての親のフォルダを取得したいです。例:FOLDER_NAME =ブリスベン

id | parent | folder_name 
------------------------- 
5 | 3  | Brisbane 
3 | 1  | QLD 
1 | 0  | Root 

私はSQLでJOINを使用したくないCTE

すべてのヘルプは素晴らしい

+0

探しているものですCTEソリューション? –

+0

これがあなたの割り当ての場合、あなたはstackoverflowではなく、googleをチェックアウトする必要があります。 [Stackoverflowの質問方法]をチェックしてください(https://stackoverflow.com/help/how-to-ask) – Anuj

+0

@Anuj - 私は、質問に努力がないときに答える/奨励しないと同意しますが再帰的なCTEは新しい人にとって理解するのは容易ではないことを理解しています。一度それを行う方法を彼らに示すことができるかもしれません。 –

答えて

0

Recursive CTEだろうが、あなたが

となぜ間違っ
;WITH cte 
    AS (SELECT * 
     FROM Yourtable 
     WHERE folder_name = 'Brisbane' 
     UNION ALL 
     SELECT b.* 
     FROM cte a 
       INNER JOIN Yourtable b 
         ON a.parent = b.id) 
SELECT * 
FROM cte 
+0

yeeah非常に役に立ちました thankyou guys –

+0

@AriefMuarriefBuhari - 喜んでこれを繰り返しました。再帰的なcte https://blog.sqlauthority.com/2008/07/28/sql-server-simple-example -of-recursive-cte / –

関連する問題