sql >> Database >  >> RDS >> Sqlserver

Hoofdouder van kind ophalen in hiërarchische tabel

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

@TechDo's antwoord gaat ervan uit dat de laagste ID de ouder is. Als u hier niet op wilt vertrouwen, wordt de bovenstaande zoekopdracht gesorteerd op diepte.



  1. Group_Concat in Concat werkt niet met NULL-waarden

  2. Hoe genereer ik een unieke, willekeurige tekenreeks voor een van mijn MySql-tabelkolommen?

  3. Ebean zoekt naar verkeerde volgordenaam in Play Framework 2

  4. mysql export sql dump alfabatisch, wat een fout met externe sleutelbeperkingen veroorzaakt tijdens het importeren