Я пытаюсь написать запрос для веб-сайта, посвященного событиям кодирования, но мне особенно трудно с этим справиться.
У меня есть таблица представлений:
submissions => subid | uid | pid | subts | status
uid = userid
pid = problem id
subts = timestamp when the submission was submitted
status = whether the answer is right or not
Пользователь мог сделать несколько заявок для данного pid.
Я хочу выяснить: кто был последним пользователем, представившим свое решение для каждой проблемы?
Пока мне все равно, было ли решение правильным или неправильным.
Запрос, который я хотя бы работал, был
select pid, uid, max(subts) from submissions group by pid;
но это не работает так, как я хочу. Этот запрос находит максимальное значение ts в порядке, но связанный с ним uid неверен.
Может ли кто-нибудь научить меня, что не так с моим запросом? и как правильно написать запрос для моей цели?
Спасибо
Примечание: я использую mysql.
Редактировать: я мог бы сделать это, перебирая все pids и писать
select pid, uid, max(subts) from submissions where pid=$pid order by subts desc limit 1;
Но я действительно не хочу этого делать. Я хочу знать, может ли один запрос выполнить то, что я хочу. Если да, я хочу знать, как.