Avatar billede jensen2005 Nybegynder
26. september 2011 - 07:33 Der er 4 kommentarer og
2 løsninger

Kan man lave en sqlsætning som henter fra databasen, sådan at underpunkter flettes ind under hovedpunkter

Hej Eksperter
Jeg har en database som hedder "menu" som indeholder både hoved- og underpunkter. Hvis kolonnen "parentid" er tom er det et hovedpunkt hvis der står et tal er det et underpunkt som tilhører hovedpunktet med samme id.

Eks.:
| id |      titel      | parentid |
  7      Hovedpunkt        null
  8      Underpunkt        7

Kan man lave en sqlsætning som henter fra databasen sådan at underpunktet flettes ind under hovedpunktet?

Venlig hilsen
Jensen2005
Avatar billede majbom Novice
26. september 2011 - 07:47 #1
hvis jeg forstår dit spørgsmål korrekt, så prøv med:

SELECT titel, parent_id FROM menu ORDER BY id, parent_id
Avatar billede senil Nybegynder
26. september 2011 - 09:58 #2
Du skal inner join tabellen på sig selv.

Select hp_menu.titel as hovedpunkt, up_menu.titel as underpunkt
from menu hp_menu
inner join menu up_menu on hp_menu.id = up_menu.id
order by hp_menu.id, up_menu.id
Avatar billede senil Nybegynder
26. september 2011 - 09:59 #3
Hov... jeg har skrevet joinet forkert.
hp_menu.id = up_menu.parentid
Avatar billede kloge Nybegynder
26. september 2011 - 10:22 #4
Du ska bruge outer join ellers forsvinder de poster, som ikke har parent_id, men rekursion og sql er en giftig cocktail, så jeg ville vælge noget lige ud af landevejen ala:

Select HovedMenu, Undermenu, underundermenu from Menu ...
Avatar billede jensen2005 Nybegynder
01. oktober 2011 - 08:03 #5
Tusind tak for input.

Jeg droppede at gøre det i sql og gjorde som Kloge forslog.

Lig et svar så i kan få point.
Avatar billede majbom Novice
01. oktober 2011 - 12:39 #6
svar...
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
Kurser inden for grundlæggende programmering

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