ホームページ >データベース >mysql チュートリアル >SQL Server の再帰的自己結合はどのようにして階層データを取得できるのでしょうか?
SQL Server 再帰的自己結合: 階層データのナビゲート
SQL Server の再帰的自己結合は、階層データ構造を横断するための強力な方法を提供します。これは、単一テーブル内の親子関係を扱う場合に特に役立ちます。
次の列を含む Categories
テーブルを考えてみましょう:
Id
Name
ParentId
再帰的自己結合により、ネストされたカテゴリ レベルを含む、このテーブル内の階層関係を抽出できます。
例:
次のカテゴリ階層を想像してください:
<code>- Business Laptops - Gaming Laptops - Ultrabooks - Compact Ultrabooks</code>
再帰共通テーブル式 (CTE) を使用して「ビジネス ラップトップ」とその親カテゴリを取得するには、次のクエリを使用できます。
<code class="language-sql">;WITH CTE AS ( SELECT id, name, name AS path, parent_id FROM Categories WHERE parent_id IS NULL UNION ALL SELECT t.id, t.name, CAST(cte.path + ',' + t.name AS VARCHAR(100)), t.parent_id FROM Categories t INNER JOIN CTE ON t.parent_id = CTE.id ) SELECT id, name, path FROM CTE WHERE name = 'Business Laptops';</code>
このクエリの出力は次のようになります:
<code>id name path 1 Business Laptops Business Laptops</code>
再帰的自己結合は、複雑な階層構造からデータを管理および取得し、複数のレベルにわたる関連情報にアクセスする効率的な方法を提供します。
以上がSQL Server の再帰的自己結合はどのようにして階層データを取得できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。