0

最上位グループの親 ID が -1 であるグループの基本的な親子テーブル (parentid int、childid int) があります。組織構造の変更によってチェーンが壊れていないことを確認し、壊れている場合は修正したいと思います。つまり、最上位の親 ID が -1 ではない子と親のレコードがある場合、それを修正してその親 ID を -1 に変更する必要があります。

例えば:

tbl_x 親 ID、子 ID (-1,1)、(-1,2)、(2,3)、(2,4)、(2,5)、(6,7)、(7,8) に挿入します。

グループ 1 ~ 5 はすべて最上位が -1 になりますが、グループ 7 は最上位が 6 になるため修正する必要があります。 7) を (-1,7) に変更して、グループ 7 を一番上に移動します。

4

1 に答える 1

1

parentidそれで、それ自体がではないそれらの行のセットを作成する必要がありますchildidか?

INSERT INTO tbl_x (parentid, childid)
SELECT -1, parentid as childid
FROM tbl_x
WHERE parentid NOT IN (SELECT childid FROM tbl_x)

私はそれがそれをするべきだと思います。

于 2012-09-17T11:13:49.337 に答える