Avatar billede svenn Nybegynder
07. august 2002 - 15:47 Der er 9 kommentarer og
1 løsning

Rækkefølge med GROUP BY og ORDER BY

Jeg har et problem, som er ved at rykke hårene ud på mig. Skal prøve på at beskrive det så grundigt som muligt:

Jeg har en tabel, som ser ud som følgende:
+--------+----+---------+-------+
| thread | id | forumid | title |
+--------+----+---------+-------+
|      3 |  6 |      10 | C2    |
|      3 |  5 |      10 | C1    |
|      2 |  3 |      10 | B1    |
|      2 |  4 |      10 | B2    |
+--------+----+---------+-------+
(udskrevet vha. "SELECT * FROM forum")

Jeg vil nu gerne have fat i række 2 og 3 (som har de mindste ID numre i henhold til THREAD).
Til dette har jeg prøvet at bruge sætningen

"SELECT * FROM forum WHERE forumid=10 GROUP BY thread ORDER BY id"

Men ved denne sætning får jeg række 1 og 3 i stedet for 2 og 3.

(Mit gæt er, at GROUP BY samler alle rækker med éns "thread" før ORDER BY køres, og da række 1 ligger over række 2, vil række 1 være den eneste række som "ORDER BY" sorterer efter.)

Er der nogle, som har en anden måde at komme rundt ved dette problem?
Avatar billede ztyxx Nybegynder
07. august 2002 - 15:51 #1
måske
"SELECT * FROM forum WHERE forumid=10 ORDER BY id desc GROUP BY thread"
???
Avatar billede svenn Nybegynder
07. august 2002 - 15:53 #2
Jeg har prøvet, men det viser sig, at GROUP BY skal være før ORDER BY
Avatar billede medions Nybegynder
07. august 2002 - 15:54 #3
SELECT * FROM forum WHERE forumid=10 ORDER BY thread,id DESC

//>Rune
Avatar billede svenn Nybegynder
07. august 2002 - 15:58 #4
Jeg skal stadig kun have 2 af de 4 rækker..
"SELECT * FROM forum WHERE forumid=10 ORDER BY thread,id DESC"
vil give mig alle 4 rækker.
Avatar billede medions Nybegynder
07. august 2002 - 16:01 #5
"SELECT thread,id FROM forum WHERE forumid=10 ORDER BY thread,id DESC"

er det da sådan du vil ha' det?
//>Rune
Avatar billede svenn Nybegynder
07. august 2002 - 16:07 #6
Hvis man samler alle rækkerne i grupper (så alle i gruppen har samme "thread"), så vil jeg have fat i dén række som har det mindste id-nummer i hver enkelt af grupperne.
Avatar billede nih Novice
07. august 2002 - 17:51 #7
select min(id)
from forum
group by id
Avatar billede nih Novice
07. august 2002 - 17:55 #8
'group by Thread' selvfølgelig

select min(id)
from forum
group by Thread
Avatar billede svenn Nybegynder
07. august 2002 - 18:55 #9
Kanon, tak skal du have!
Avatar billede nih Novice
07. august 2002 - 21:52 #10
velbekomme
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
Computerworld tilbyder specialiserede kurser i database-management

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