sql >> Database teknologi >  >> RDS >> Sqlserver

Få alle forældre til et barn

Prøv dette for at få alle forældre til et barn

;with name_tree as ( select id, parentid from Users where id = 47897 -- this is the starting point you want in your recursion union all select C.id, C.parentid from Users c join name_tree p on C.id = P.parentid -- this is the recursion -- Since your parent id is not NULL the recursion will happen continously. -- For that we apply the condition C.id<>C.parentid AND C.id<>C.parentid ) -- Here you can insert directly to a temp table without CREATE TABLE synthax select * INTO #TEMP from name_tree OPTION (MAXRECURSION 0) SELECT * FROM #TEMP

Klik her for at se resultatet

REDIGERING:

Hvis du vil indsætte i en tabelvariabel, kan du gøre sådan noget som:

-- Declare table varialbe Declare @TABLEVAR table (id int ,parentid int) ;with name_tree as ( select id, parentid from #Users where id = 47897 -- this is the starting point you want in your recursion union all select C.id, C.parentid from #Users c join name_tree p on C.id = P.parentid -- this is the recursion -- Since your parent id is not NULL the recursion will happen continously. -- For that we apply the condition C.id<>C.parentid AND C.id<>C.parentid ) -- Here you can insert directly to table variable INSERT INTO @TABLEVAR select * from name_tree OPTION (MAXRECURSION 0) SELECT * FROM @TABLEVAR

Klik her for at se resultatet



  1. Ændring af et Enum-felt ved hjælp af Alembic

  2. Komplet proces til at kopiere tabel fra en database til en anden (eksport-import) i SQL Server

  3. Topforespørgsler om primærnøgle i Oracle med eksempler

  4. Sådan navigerer du i Access 2019-åbningsarbejdsområdet