Tinky Winky wrote:
>
> Jeg har en menu i en træstruktur på en MySQL database. I hvert punkt står
> der en evt. forældre id, ellers 0. Jeg skal hive et punkt ud og alle dens
> "søster" punkter og alle forældrene helt til roden, så det kan vises pænt
> grafisk, ligesom fx:
>
> -
> dk.edb
> dk.edb.database
> dk.edb.hardware
> dk.edb.hardware.bundkort
> dk.edb.hardware.drev <----
> dk.edb.hardware.grafikkort
> .......
>
> Man kan self. lave en SQL sætning der finder det aktuelle punkts forældre
> id, derefter en ny SQL sætning, der henter alle på det "niveau", derefter en
> ny sætning der henter alle på det foregående niveau osv. indtil man er til
> roden. Men det giver en del SQL sætninger, kan man ikke lave det i en
> sætning?
>
> Og kan man lave det med MySQL 3.23? Den understøtter ikke subselects. Eller
> kan man med version 4? Hvordan laver man den slags løkker?
Subselects vil ikke hjælpe dig. Man laver *ikke* løkker i SQL.
SQL er notorisk dårligt til at understøtte træstrukturer. Der vindes
omveje, men de kræver at man ændrer sin repræsentation, altså at man
ændrer tabel-layoutet. Og så er jeg ikke engang sikker på at de besværet
værd.
En anden mulighed er at finde et rdms, der har lokale udvidelser, der
kan hjælpe. Oracle har så vidt jeg husker en funktion, der hedder
CONNECT BY, der kan løse problemet. Det ville imidlertid undre mig, hvis
MySQL har det eller får inden for nærmeste fremtid. Deres
førsteprioritet er vist at komme op på fuld speed med standard-SQL.
--
Kristian Damm Jensen | Feed the hungry at
www.thehungersite.com
kristian-damm.jensen@cgey.com | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.