webForumDet fria alternativet

Hämta senaste rader ur tabell m.a.p. datumfält

Databaser & SQL

4 svar · 438 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Har en tabell med ett antal fält varav fält A och B tillsammans utgör primärnyckeln. A är en varchar(15) och B är en date. Sen finns även flera fält C, D, E, F, ...

Det här kan ses som en loggtabell där A egentligen är själva nyckeln och B är datum när informationen hämtades in.

Nu vill jag hämta ut alla olika A och för varje A vill jag ha den senaste raden, dvs senaste datumet hos B.

Känns rätt trivialt men jag får inte riktigt till det.

Det är MySQL 5.0 det gäller.

Medlem sedan dec. 200012 464 inlägg
#2
select a,max(b)
  from t
 group by a
Medlem sedan sep. 20005 700 inlägg
#3

LarsG skrev:

select a,max(b)
  from t
 group by a

Jo, men när jag lägger till fält c i frågan så får jag visserligen senaste datumet men jag får data i c-fältet för en annan datum-rad.

select a,max(b), c
from t
group by a

Medlem sedan dec. 200012 464 inlägg
#4
select a,b,c
  from t
 join
   (select a,max(b) as b
       from t
     group by a) as dt
 on t.a = dt.a
 and t.b = dt.b
Medlem sedan sep. 20005 700 inlägg
#5

Precis så, tack!

270 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)