Hej!
Har probelm med att få ut bästa tid för en distans, tillsammans med JOIN och tre tabeller:
[b]Resultat[/b]
ResId
ResUser
ResDate
ResDistance
ResTime
[b]Distanser[/b]
DistId (= Resultat.ResDistance)
DistName
Försöker med JOIN på resultat och MIN, för att få den bästa tiden:
SELECT
`ResDate`, `ResDistance`, t2.`Result` AS `Result`, `DistName`
FROM `competition_result` t
INNER JOIN
( SELECT `ResId`, MIN(`ResTime`) `Result`
FROM `competition_result`
WHERE `ResUser` = :UserId
GROUP BY `ResDistance`
) t2
ON t.`ResId` = t2.`ResId`
INNER JOIN `competition_distance`
ON t.`ResDistance` = `DistId`
WHERE t.`ResUser` = :UserId
ORDER BY `Distance`, `ResTime`, `ResDate`
Problemet är att i resultatet förekommer samma distans (med olika tid) flera gånger, samt att datumet (ResDate) kommer från fel rad. D.v.s tiden är rätt, men den väljer ett datum från samma distans fast en annan tid.
Förslag på hur jag löser det här? Känns rätt straight forward och jag förstår inte varför det inte fungerar.
Tacksam för hjälp!