2
すべての子ノードを親IDにマークする方法の例を教えてください。親の値が"need"
のブランチにマークするだけで済みます(サンプルイメージを参照)。再帰クエリを使用して、特定の親のすべての子の名前を変更することはできません...親エレメントの子エレメントの名前を値で指定する方法は? SQLサーバー
初期データ:
+-----+----------+----------+
| id | parentid | selector |
+-----+----------+----------+
| 1 | | |
| 2 | 1 | |
| 3 | 1 | need |
| 4 | 2 | |
| 5 | 2 | need |
| 6 | 3 | |
| 7 | 5 | |
| 8 | 5 | |
| 9 | 6 | |
+-----+----------+----------+
は、データを必要とする:
+-----+----------+----------+----------------+
| id | parentid | selector | parentSelector |
+-----+----------+----------+----------------+
| 1 | null | | null |
| 2 | 1 | | null |
| 3 | 1 | need | 3 |
| 4 | 2 | | null |
| 5 | 2 | need | 5 |
| 6 | 3 | | 3 |
| 7 | 5 | | 5 |
| 8 | 5 | | 5 |
| 9 | 6 | | 3 |
+-----+----------+----------+----------------+
タスクを作ることです親が値"need"
を持つ要素によるグループ化。私は、上記の表の例のように、マーク付きの列を作成する必要がありますか、または他のオプションがありますか?条件付きparentSelectorを作るために、あなたが望むものを私が考える、さ
が、私はそれは、SQL Server 2012上で動作する場合、私が知っているdont't SQL Server 2012
問題は、階層的な選択で、ノード9に、我々はノード3を知らないと私は問題を理解している場合CASEを通じて、我々はこの... –
を追跡することができないということです、あなたはこの[stackoverflow join](https://stackoverflow.com/questions/29795400/loop-join-in-sql-server-2008)のようなループ結合が必要です。 これはあなたが望むものを許可することができますが、これはテーブルがそれよりも大きい場合にサーバを遅くする可能性があります。 –
私は、この例よりも構造(実際の木)が大きくなっているので、それは良い解決策だとは思わない。しかし、助けてくれてありがとう、私はこの方法を知っている –