Avatar billede _on_ Nybegynder
22. maj 2007 - 21:27 Der er 2 kommentarer og
1 løsning

Forespørgsel til rekursiv relation

Hej

I min database har jeg en tabel med en rekursiv relation hvor poster kan referere til andre poster i flere niveauer. Jeg kunne godt tænke mig at få lavet en forespørgsel der kan nedbryde denne sammenhæng og levere et resultat med alle givne underposter ved at angive en post som øverste niveau. Jeg er klar over at jeg kan programmere mig ud af problemet, men ville gerne ha' det som en SQL-forespørgsel.

Mvh
ON
Avatar billede 0xffff Nybegynder
23. maj 2007 - 08:32 #1
Hvor mange niveauer har du ? hvis det i teorien kan være uendeligt, skal du over og bruge en stored procedure.

Hvis der kun er et vidst antal niveauer kan du i teorien godt lave det med en enkelt SQL forespørgsel vha. self joins eller nested selects.
Avatar billede _on_ Nybegynder
23. maj 2007 - 10:56 #2
Jeg havde egentlig ikke forestillet mig, at det skulle være begrænset, men kan godt "leve" med en begrænsning på max. 8 niveauer. Nu er det dog sådan at der ikke har nøde at være relationer i mere end 2 niveauer, og det vil i langt de fleste tilfælde være med 2 niveauer (hvilke poster indgår i en given post). Når du nævner stored procedure, taler vi så ikke Microsoft SQL server, eller Borland Interbase eller lign.
På min form har jeg en 1->M relation, men jeg kan ikke få den til at vise hvad der indgår i hver af posterne i mange relationen og samle dem i en liste.

Kunne du evt. give et eksempel på en SQL forespørgsel der kan lave denne nedbrydning, og som virker uanset om der er 2, 3, ..., 8 niveauer.

ON
Avatar billede _on_ Nybegynder
01. juli 2007 - 19:44 #3
Nåh, det kan åbenbart ikke lade sig gøre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester