Evo jedan zadatkic ako tko ima vremena da malo promozga.
Pravim neki programcic za pracenje vremena po krugovima u moto sportu i sad je zapelo. Trebam izvadit najbrze krugove (laps) iz baze ali po userima i za odredeni track_id. U laps tablici imamo vise track-ova i vise usera sa unesenim vremenima u 3 kolone (min, sec i milli) npr. 1 25 145 .
Evo, ja probavam vec satima i ne ide mi nikako.
Dosao sam do ovdje:
SELECT lap_id, user_id, track_id, min, sec, milli
FROM laps
WHERE concat(`min`, `sec`, `milli`) =
(SELECT MIN(concat(`min`, `sec`, `milli`))
FROM laps
WHERE track_id = 1
)
i to je ok za najnize tj. najbrze uneseno vrijeme.
Sad samo probao ugurat GROUP BY user_id da mi vrati najniza vremena po useru ali nema sanse:
SELECT lap_id, user_id, track_id, min, sec, milli
FROM laps
WHERE concat(`min`, `sec`, `milli`) =
(SELECT MIN(concat(`min`, `sec`, `milli`))
FROM laps
WHERE track_id = 1
)
GROUP BY user_id
ovo ne valja.
Niti ovaj pristup ne valja:
SELECT lap_id, user_id, track_id, min, sec, milli
FROM laps
WHERE track_id = 1
GROUP BY user_id
HAVING concat(`min`, `sec`, `milli`) =
(SELECT MIN(ass) FROM
(SELECT user_id, track_id, concat(`min`, `sec`, `milli`) as ass
FROM laps
WHERE track_id = 1
GROUP BY user_id) as nesto
)
E kad bi to na neku foru proradilo onda bi jos trebalo stavit order by concat(`min`, `sec`, `milli`)
Kako to izvaesti?
I sta mislite, jel dobro spremati vremena u 3 kolone? Mozda ima koji bolji nacin?
Hvala unaprijed!!