Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Strul med sortering, Left join...

Postades av 2006-10-25 15:36:55 - Eric Herlitz, i forum mysq, Tråden har 8 Kommentarer och lästs av 1291 personer

Hej!

Jag har en tabell med id och pid som skall leda sorteringen.
Exempelvis kan den se ut så här

id, pid
1 , 0
2 , 0
3 , 0
4 , 2
5 , 2
6 , 3
7 , 2


Tanken är att SQLen via en Join skall sortera ut dessa på rätt sätt sen. Dvs att pid följer efter id.
id, pid
1 , 0
2 , 0
4 , 2
5 , 2
7 , 2
3 , 0
6 , 3


Det jag gör idag är följande

SELECT
`mod_policy`.`id` AS `id`,
`mod_policy2`.`pid` AS `pid`
FROM
`mod_policy`
Left Join `mod_policy` AS `mod_policy2` ON `mod_policy`.`pid` = `mod_policy2`.`pid`
GROUP BY
`mod_policy`.`id`


Denna sql hittar så klart alla poster men soterar ut dem med alla som har pid = 0 först, och sen kommer resten.

Tacksam för hjälp
Eric


Svara

Sv: Strul med sortering, Left join...

Postades av 2006-10-25 17:13:03 - Jenny Månsson

Lägg till i din sqlfråga:

ORDER BY `id`


Svara

Sv:Strul med sortering, Left join...

Postades av 2006-10-26 08:22:23 - Eric Herlitz

Njae, det där ändrar ingenting direkt =/
Eric


Svara

Sv: Strul med sortering, Left join...

Postades av 2006-10-26 10:18:20 - Niklas Jansson

Vad du kan göra är att skapa ett nytt index i, och sen räkna ut det så att i är något i stil med

i = (max(id)+1) * pid + id

Vet inte om det funkar rakt av.

I övrigt finns det ett bättre sätt att lagra hierarkiska data; via left och right-värden. http://www.sitepoint.com/article/hierarchical-data-database/2


Svara

Sv: Strul med sortering, Left join...

Postades av 2006-10-26 13:26:24 - Lars Berg

<code>
SELECT id ,
pid
FROM mod_policy
order by
case when mod_policy.pid = 0
then id
else pid end
</code>

den group du har är inte semantiskt korrekt och borde ge fel.


Svara

Sv:Strul med sortering, Left join...

Postades av 2006-10-26 13:48:10 - Eric Herlitz

prydligt!

går det att få den att fungera i flera nivåer?
har kollat runt en hel del på webben men hittar inte direkt någon info kring sortering med case överhuvudtaget :(


Svara

Sv:Strul med sortering, Left join...

Postades av 2006-10-26 16:03:29 - Per Persson

Lars, vad är det för semantiskt fel på Erics GROUP BY? Om du syftar på att han inte har några gruppfunktioner på mod_policy2 och pid, så krävs inte det i MySQL.


Svara

Sv: Strul med sortering, Left join...

Postades av 2006-10-26 17:05:16 - Andreas Hillqvist

Det är en effektiv och snyggt sätt att behålla datastrukturen och integriteten för en trästruktur.
Tyvärr går det inta att snabbt och effektivt att sortera hela eller ett urval av trädet.
Om det är ett träd som sällan uppdateras kan du istället skapa ett nytt fält vilket lagrar sorterings ordning.
Du behöver bara uppdatera denna kolumn när värden läggs till, flyttas eller tas bort.

En anna struktur som påminner lite om HTML tagar är att start och slut:
-1. Root
ger:
Start Slut Text
1 1 Root

-1. Root
+2. Child
ger:
Start Slut Text
1 2 Root
2 2 Child

-1. Root
+2. Child
+3. SubChild
ger:
Start Slut Text
1 3 Root
2 3 Child
3 3 SubChild


-1. Root
+2. Child
+3. SubChild
+4. Child
+5. SubChild
+6. SubChild
ger:
Start Slut Text
1 6 Root
2 3 Child
3 3 SubChild
4 6 Child
5 5 SubChild
6 6 SubChild

Denna kod ställer stöör krav på att du som programmerare håller strukturen uppdaterad. Fördelen är dock att du kan effektit summera dela av trädet.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
1 209
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies