07. august 2002 - 15:47Der 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?
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.
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.