0
下記のとおり、私は(簡単のために)のテーブルを持っている:このSQL Server階層を簡単に継承された包括的なリストに平坦化できますか?
Category
--------------------
CategoryId (0 for root nodes)
ParentCategoryId
ProductCategory
--------------------
ProductId
CategoryId
私はすべてのカテゴリとその継承された製品(バックカテゴリ0のすべての方法)の個別のリストを取得できるようにしたいと思います。カテゴリ0にはすべての製品が含まれている必要があり、他のすべてのカテゴリは階層の下を無限に深く追うべきです。
例表の内容:
CategoryId, ParentCategoryId
---------------------
1, 0
2, 0
3, 0
10, 1
20, 2
ProductId, CategoryId
---------------------
1, 10
2, 1
3, 2
4, 20
5, 3
私は出力が階層構造を旅し、私の製品が該当することができ、すべてのカテゴリをお伝えしたいと思います。したがって、望ましい結果は次のようになります。
ProductId, CategoryId
---------------------
1, 0
2, 0
3, 0
4, 0
5, 0
1, 1
2, 1
3, 2
4, 2
5, 3
1, 10
4, 20
SQL Server 2005でこれを行う簡単な方法はありますか?