重要なのは、これです。集計関数は、その行の残りの部分を「気にしません」。MINではなくSUMの場合、見やすくなります...
解決策は少しトリッキーです。不等式でLEFTJOINを含む何かを行う必要があります:
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
アイデアは、MIN関数をスキップして行全体を取得することにより、最小値を取得することです
リーダーボードテーブルから日付(またはその他の列/基準)でフィルタリングするには、使用する各テーブルをフィルタリングする必要があります。ON条件でLEFT JOINedテーブルをフィルタリングすることが重要です。そうしないと、フィルタリングNULLの影響がなくなります。
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
お役に立てば幸いです