Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL: Toivottavasti teille helppo SQL

escelinen [03.10.2005 15:54:53]

#

Mulla on taulu,jossa ao. tietueita. Parentid kertoo, kuuluuko tietue päätasoon (-1), vai alatasoon, jolloin parentid on päätason tasoid. Mun pitäis saada sortattua nuo niin, että kaikki parentid:t on peräkkäin oman päätasonsa alla, eikä esim. tasoid=62 kohdassa jossa tietueet kuuluvat ylempään tasoon, mutta välillä on jo päätasoon 57 kuuluvia tietueita.
Meni käsi päähän, voitteko auttaa?

id tasoid parentid
37 1 -1
37 2 -1
37 3 -1
37 4 3
37 5 3
37 6 -1
37 7 6
37 8 6
37 9 6
37 10 6
37 11 6
37 12 -1
37 13 12
37 14 12
37 15 12
37 16 12
37 17 12
37 18 12
37 19 12
37 20 12
37 21 12
37 22 12
37 23 12
37 24 12
37 25 12
37 26 12
37 27 12
37 28 12
37 29 12
37 30 12
37 31 12
37 32 12
37 33 12
37 34 -1
37 35 34
37 36 34
37 37 34
37 38 34
37 39 34
37 40 34
37 41 34
37 42 34
37 43 34
37 44 34
37 45 34
37 46 34
37 47 34
37 57 -1
37 58 57
37 59 57
37 60 57
37 61 57
37 62 34
37 63 34
37 64 34
37 65 34
37 66 34
37 67 34
37 68 34
37 69 34
37 70 34
37 71 34

Niin ja where id=37 ei sitten kelpaa, tuo on vaan osa siitä kannasta, seuraavana on id 38 jne. ja kaikissa pitää tuo id:n sisäinen järjestys saattaa oikeaksi.

FooBat [03.10.2005 16:32:06]

#

Yksi vaihtoehto on tietenkin tehdä kaksi SQL-lausetta, joista ensimmäisellä haet päätasot halutussa järjestyksessä ja toisella päätasojen mukaan järjestetyt alatasot. Sitten ohjelmalliseti yhdistät tulokset tulostamalla aina yhden päätason ja siihen kuuluvat alatasot. Kun tulokset ovat sopivassa järjestyksessä, tämä on varsin suoraviivaista.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta