Вот упрощенная версия моей таблицы sql за 2 месяца (СРОКИ ПО ДАТЕ):
player_id |
дата |
оценка
1 2011-05-25
1200
2 2011-05-25
3400
3 2011-05-26
3200
4 2011-05-26
4400
1 2011-05-28
1000
2 2011-05-28
2000
3 2011-05-29
3000
4 2011-05-29
4000
1 2011-06-24
1300
2 2011-06-24
2500
3 2011-06-24
5000
4 2011-06-24
3000
По сути, я хочу запрос, который показывает последний счет всех игроков за определенный месяц / конкретный год.
Пример:
Если я хочу получить итоговые результаты всех игроков за месяц 05, то есть результат
будет:
1 2011-05-28 1000
2 2011-05-28 2000
3 2011-05-29 3000
4 2011-05-29 4000
Мой запрос sql:
SELECT m1.* FROM table m1
LEFT JOIN table m2 ON (m1.player_id = m2.player_id AND m1.date < m2.date)
WHERE m2.date IS NULL
AND month(m1.date) = 05
AND year(m1.date) = 2011
ORDER BY score DESC);
Похоже, это показывает не всех игроков, а только игроков, которые не играли в течение нескольких месяцев после 05. Где я могу добавить выбранную дату?
спасибо заранее!
** EDIT
Ответ Джона Несториака ниже помог мне:)