Die Sache ist folgende:Jede Aggregatfunktion "kümmert sich nicht" um den Rest ihrer Zeile. Wenn es nicht MIN, sondern SUM war, ist es leichter zu sehen...
Die Lösung ist etwas knifflig, Sie sollten etwas tun, das LEFT JOIN mit einer Ungleichung beinhaltet:
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
Die Idee besteht darin, den niedrigsten Wert zu erhalten, indem die MIN-Funktion übersprungen und die gesamte Zeile abgerufen wird
Das Filtern nach Datum (oder einer anderen Spalte/Kriterien für diese Angelegenheit) aus der Leaderboard-Tabelle erfordert, dass wir jede Tabelle filtern, die wir verwenden. P>
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
hoffe es hilft