Este é um problema complicado no SQL, que é melhor respondido direcionando você para um excelente artigo detalhado sobre o problema:Como selecionar a primeira/mínima/máxima linha por grupo no SQL . Ele cobre meios específicos do MySQL para fazer isso, bem como métodos genéricos.