Het punt is dit:elke geaggregeerde functie "geeft niets om" de rest van zijn regel Als het niet MIN maar SUM was, is het gemakkelijker te zien...
De oplossing is een beetje lastig, je zou iets moeten doen waarbij LEFT JOIN een ongelijkheid inhoudt:
SELECT u.username, l.timer AS intScore, l.hashtag
FROM
leaderboard l
INNER JOIN users u ON u.users_id = l.users_id
LEFT JOIN leaderboard l2 ON l.users_id = l2.users_id AND l2.timer < l.timer
WHERE
l2. users_id IS NULL
ORDER BY intScore ASC
Het idee is om de laagste waarde te krijgen door de MIN-functie over te slaan en de hele rij te krijgen
Filteren op datum (of een andere kolom / criteria voor die kwestie) van de leaderboard-tabel, vereist dat we elke tabel die we gebruiken filteren. Het is belangrijk om de LEFT JOINed-tabel te filteren op de ON-voorwaarde, anders elimineren we het filterende NULL-effect:
SET @date0 = '2018-01-01';
SELECT u.username, l.timer AS intScore, l.hashtag
FROM
leaderboard l
INNER JOIN users u ON u.users_id = l.users_id
LEFT JOIN leaderboard l2 ON l.users_id = l2.users_id AND l2.timer < l.timer AND l2.game_date >= @date0
WHERE
l.game_date >= @date0
l2.users_id IS NULL
ORDER BY intScore ASC
hoop dat het helpt