webForumDet fria alternativet

Grupering och utskrift.

Databaser & SQL

6 svar · 324 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Frågan#1

Jag har en databas med 3 fält
ID, NAME, BELONGTO

den kan se ut ungefär såhär

1 BILAR 0
2 DJUR 0
3 Volvo 1
4 Saab 1
5 apa 2
6 nissan 1
7 kanin 2

osv..

hur gör jag för att grupera dessa och skriva ut dom så att först så skrivs bilar ut sedan alla bilmärken under, sedan skrivs djur ut och under det alla djur osv.. Gärna med getrows

EDIT : Använder MySQL

Medlem sedan juni 200032 967 inlägg
#2

Det får du sköta i applikationen, och inte i SQL.

ASP alltså? Det är många som frågat om samma sak, så prova att söka lite.

edit: eller menar du att du vill ha någon sorts rekrursiv trädfunktion?

Medlem sedan aug. 20011 087 inlägg
#3

Trodde man gruperade det i sql-frågan men jag kanske var fel ute där..

Medlem sedan juni 200032 967 inlägg
#4

Du kan ju använda order by för att bestämma vilken ordning du vill att posterna ska komma i, men när du har "parents" och "children" i samma tabell blir det lite svårare att göra det med SQL. Visa gärna hur du vill att resultatet ska bli, med det exempeldata du visar.

Medlem sedan aug. 20011 087 inlägg
#5

Såhär skall det alltså skrivas ut

BILAR
nissan
saab
volvo
DJUR
apa
kanin

Medlem sedan aug. 20011 087 inlägg
#6

Finns det inte något "group by" man kan använda sig av? har för mig det iaf.. verkligen ingen som kan detta? :(

Medlem sedan dec. 200012 464 inlägg
#7

group by har inget med sortering att göra så det kan du glömma. Om du vet att det bara är två nivåer så

order by case when belongto = 0 then id else belongto end,
id
267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
138 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)