sql >> Databasteknik >  >> RDS >> Sqlserver

Hämta rotförälder till barn i hierarkisk tabell

DECLARE @id INT = 6
;WITH parent AS
(
    SELECT id, parentId, 1 AS [level] from tbl WHERE id = @id
    UNION ALL 
    SELECT t.id, t.parentId, [level] + 1 FROM parent
    INNER JOIN tbl t ON t.id =  parent.parentid
)
SELECT TOP 1 id FROM parent ORDER BY [level] DESC

@TechDos svar antar att det lägsta ID:t är föräldern. Om du inte vill lita på detta kommer ovanstående fråga att sorteras efter djupet.



  1. Kan inte ansluta till den lokala MySQL-servern genom uttaget '/tmp/mysql.sock' (2)

  2. Hur man går med i MySQL och Postgres i en levande materialiserad vy

  3. Fråga postgres jsonb efter värde oavsett nycklar

  4. Zend Framework gå med