webForumDet fria alternativet

"Sortera" GROUP BY

3 svar · 169 visningar · startad av Joakim

JoakimMedlem sedan dec. 199986 inlägg
#1

Tjo!

Hjärnan vill sova men jag vill inte ge upp =)
Skall göra processen kort:

Exempeltabell med följande kolumner:

id, id2, innehall

Exempel på poster:

1, 1, Gammal
2, 1, Nyare
3, 1, Nyast
4, 2, Jättegammal
5, 2, Jätteny

Dessa rader vill jag gruppera efter id2 och visa den posterna som har högst id. En select som på ovanstående innehåll returnerar:

3, 1, Nyast
5, 2, Jätteny

i princip SELECT * FROM t GROUP BY id2 HAVING MAX(id) om ni förstår vad jag menar. Hur gör jag?

Tackar på förhand

// Joakim

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det går inte med en fråga i Mysql (om du inte väntar tills dess att dom stöder subqueries). Du får bygga en temptabell med max(id) group by id2 och sedan göra en join mot den tabellen.

JoakimMedlem sedan dec. 199986 inlägg
#3

Typiskt..

Tanken bakom systemet är lite komplicerat men det är ju uppenbarligen enkelt när jag vill ha ut ett enda id2 med högst id, problemet är när jag vill lista dem.

Hur är tänket med en temp-tabell?

Man lär sig nåt nytt varje dag.. =)

JoakimMedlem sedan dec. 199986 inlägg
#4

Jag jobbar mig runt det. Får köra dubbla frågor och tänka om lite =)

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb