私はこの論理的な問題で立ち往生しており、どうすればよいかわかりません。
ID と FOLDERID の 2 つの列があります。フォルダーもサブフォルダーになる可能性があるため、最初にフォルダー ID (ルートフォルダー) を持たないフォルダーを選択し、次にそれらのサブフォルダーを選択して、結果を並べ替えたいと思います。こうすれば、「フォルダXが存在しない」などの問題は発生しません。
この例では、FOLDERID ASC および/または ID ASC による単純な順序付けでは、必要なものを取得できません。
正しい結果は 3 番目の結果です。
- 最初に、ID 2 の "Teste" フォルダーを取得します。これは、フォルダー ID 0 = ルート 1 であるためです。
- フォルダーIDが2であるため、「Controladoria」フォルダーが必要なため、最初にフォルダーID 2を作成する必要があります(Teste)
- ID 1 のフォルダーが必要な「PCP」フォルダー (Controladoria)
- ID 3 (PCP) のフォルダーが必要な「Pasta1」フォルダー
- 延々と...
同じテーブルで複数の ORDER BY と JOIN/LEFT JOIN を使用していくつかの方法を試しましたが、これを行う方法がわかりません。
何か案は?