sql >> Databasteknik >  >> RDS >> Mysql

Hämta hierarkidata från självrefererande tabeller

Om databasen är SQL 2005 / 2008 så...

Det enklaste sättet att få detta är att använda en CTE (Common Table Expression) som är utformad för att återkomma.

 WITH myCTE (Item_id, Depth)
 AS
 (
    Select Item_ID, 0 as Depth From yourTable where Item_Parent=0
    Union ALL
    Select yourTable.Item_ID, Depth + 1 
    From yourTable 
    inner join myCte on yourTable.item_Parent = myCte.Item_Id
 )

 Select Item_id, Depth from myCTE

Utgången är som följer:

Item_Id  Depth
    1   0
    2   0
    3   1
    4   1
    5   2

Från det kan du formatera det som du vill.



  1. VÄLJA data från flera tabeller?

  2. java jdbc mysql-kontakt:hur man löser frånkoppling efter en lång inaktivitetstid

  3. Tidiga registreringar öppnar för PGDay.IT 2011

  4. Hur man fångar och analyserar SQL Server-händelser