0

私は現在、手順を書いています。私は syBase に設定されたファイル システムを持っています。指定したファイルを含むすべてのファイルを検索し、それらすべてのファイルを含むすべてのファイルを検索したいと考えています。すぐ。

現在、私のコードは機能し、必要なすべてのファイルを返しますが、現在は多くの繰り返しコードであり、とにかくすべてのファイルをカバーしていないため、より洗練されたバージョンが必要です。

ループしてみましたが、あまり運がありません。

INSERT #nodes 
    SELECT from_file
    FROM file_map 
    WHERE to_file = @fileNode

    insert #fileList
    SELECT DISTINCT file
    from #nodes


INSERT #nodes1
    SELECT from_file
    FROM file_map m
    INNER JOIN #nodes n ON m.to_file = n.file
    WHERE m.to_file LIKE '/%'

    INSERT #fileList
    SELECT DISTINCT file
    FROM #nodes1

INSERT #nodes2
    SELECT from_file
    FROM file_map m
    INNER JOIN #nodes1 n ON m.to_file = n.file
    WHERE m.to_file LIKE '/%'

    INSERT #fileList
    SELECT DISTINCT file
    FROM #nodes2

INSERT #nodes3
    SELECT from_file
    FROM file_map m
    INNER JOIN #nodes2 n ON m.to_file = n.file
    WHERE m.to_file LIKE '/%'

    INSERT #fileList
    SELECT DISTINCT file
    FROM #nodes3

これは非常に簡単な手順ですが、これをよりきれいに/より速くする方法がわかりません。

これは単なる例です。システムは 30 個のファイルの深さになる可能性があるため、30 個の一時テーブルを作成したくありません。

4

2 に答える 2

0

あなたがやろうとしているのは、階層構造からデータを取得することです。ソリューションを改善することは可能ですが、データベースに変更を加える必要がある場合があります。SitePoint に関する記事があり、タイトルが「Storing Hierarchical Data in a Database 」というタイトルで概念が説明されており、非常に明確です。

于 2012-08-07T14:06:22.757 に答える