Avatar billede rocha_dk Nybegynder
04. oktober 2008 - 18:17 Der er 5 kommentarer og
1 løsning

Hjælp til Parent Child query

Hej Eksperter,

Jeg har brug for hjælp til at lave en Parent Child query, som henter rækker (kategorier og underkategorier) fra et table.

Tabellen ser sådan ud:
  ID
  category
  parentCategoryId

og tanken er at jeg gerne vil have følgende sortering af en select, her et eksempel:

category (id 1)
  subcategories (id 3)
    subcategories (id 4)
category 2 (id 2)
... osv.

Er der nogen der har nogle gode råd til en sql-query der vil kunne løse det?
Avatar billede arne_v Ekspert
04. oktober 2008 - 18:51 #1
SELECT * FROM tabel

og så lad applikationen og ikke SQL håndtere din træ struktur
Avatar billede rocha_dk Nybegynder
04. oktober 2008 - 18:59 #2
Tak for svaret :)
Er det godt nok det nemmeste?
Avatar billede arne_v Ekspert
05. oktober 2008 - 04:51 #3
Det bliver noget rod at skulle lave i SQL.
Avatar billede rocha_dk Nybegynder
05. oktober 2008 - 11:55 #4
Ok, jeg har også lavet det i app'en nu. Men ville gerne have set det i SQL ;)
Smider du ikke et svar, så får du en stak point.f
Avatar billede arne_v Ekspert
12. oktober 2008 - 04:46 #5
Det kan ikke gøres i en enkelt SQL query.

Du vil skulle lave en stored procedure (forudsætter MySQL 5.x !), som laver en stribe
queries og indsætter i en temporær tabel.

Og et svar.
Avatar billede olebole Juniormester
12. oktober 2008 - 16:18 #6
<ole>

En anden løsning, som meget ofte ses på den slags listninger, er en bunke rekursive kald, der level efter level henter data. Det giver dog også en masse DB-kald, som ikke er nødvendigt ... hvor Arnes forslag kun medfører ét kald.

Jeg har faktisk lige selv siddet og lavet et eksempel til en spørger i PHP-kategorien:
    http://www.eksperten.dk/spm/848643#rid7228470

/mvh
</bole>
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

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