解決できないこのクエリについて、あなたの助けが必要です。これが問題です。たとえば、次のようなテーブルがあるとします。
Father | Son
1 | 2
1 | 3
1 | 4
3 | 5
3 | 6
2 | 7
4 | 8
5 | 9
6 | 10
テーブルが父と息子の関係を表していることがわかるように、1 人の父親のすべての息子 (および息子の息子) を見つける必要があります。たとえば、番号 1 の息子を探している場合、次のようなテーブルが得られます。これ
Father | son
1 | 2
1 | 3
1 | 4
1 | 5
1 | 6
1 | 7
1 | 8
1 | 9
1 | 10
数 3 の息子を探している場合は、次のようになります。
Father | son
3 | 5
3 | 6
3 | 9
3 | 10
わかりました、あなたは私の要点を理解したと思います。次の問題は、テーブル内の各父親に対してそれを行う必要があることです。したがって、最終的に、テーブルは次のようになります。
Father | son
1 | 2
1 | 3
1 | 4
1 | 5
1 | 6
1 | 7
1 | 8
1 | 9
1 | 10
3 | 5
3 | 6
3 | 9
3 | 10
2 | 7
4 | 8
5 | 9
6 | 10
木の上を行くのとよく似ています。私はしばらくの間、このクエリを理解しようとしてきましたが、成功しませんでした。こんなコーデにしました
WITH son
AS (
-- in
SELECT FK_CC_B
FROM PG_Rols_CC
WHERE FK_CC_A = @idCC
UNION ALL
--recur
SELECT t.FK_CC_B
FROM PG_Rols_CC AS t
JOIN hijos AS a
ON t.FK_CC_A = a.FK_CC_B
)
insert into @TableSons (idSon) SELECT * FROM son
しかし、それは同時に各父親に対して機能するわけではなく、結果のテーブルは少し異なり、息子の ID しかありません。例
son
3
4
5
6
7
あなたが私を助けてくれることを願っています。