webForumDet fria alternativet

Loopa ut trädstruktur

Databaser & SQL

4 svar · 293 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Det står helt stilla i huvudet...

Jag har en tabell som ser ut så här:

Table
------
tbl_id
tillhor
namn

"tbl_id" är unikt för varje post. "tillhor" innehåller ett id till den post som posten tillhör, tillhör posten ingen så innehåller attributet "-". Nu vill jag loopa ut aktuell posts "namn" (låt oss säga att det är en katalog-struktur) och dess tillhörande posts "namn", och dess tillhörande... osv. Den slutar så fort "tillhor"="-".

En enkel liten loopen som sagt jag har tänksvårigheter idag... :)

Tack

Medlem sedan dec. 200012 464 inlägg
#2

Om du vill hantera ett godtyckligt djup så går det inte direkt med SQL (i de flesta DBMS).

Du får lösa det rekursivt i din applikation, för varje tillhor <> '-' så ställer du frågan igen med tbl_id = <tillhor från föregående post>

Medlem sedan jan. 20051 130 inlägg
#3

Hmm, kan du visa hur? :OO

:)

Medlem sedan jan. 20051 130 inlägg
#4

Jag vet nog allt att du vill hjälpa mig LarsG... ;)

Please

Medlem sedan dec. 19996 721 inlägg
#5

Principen:

Gör en funktion som först hämtar ut namnet och tillhor för ett specifikt id. Om tillhor="-" så returnerar du namnet, annars returnerar du funktionen(tillhor) & "/" & namnet. Du anropar alltså funktionen från funktionen (det är det som kallas rekursion).

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)