Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Junção do MySQL com base em max (timestamp)


Este problema é bastante comum. Você precisa de uma subconsulta para descartar o timestamp máximo e o ratetypeid (que é a base para o agrupamento) e, em seguida, selecionar todo o resto de uma junção interna dessas linhas de subconsulta e tudo mais.

Para MySQL:
SELECT ratecode, rate, id, ratetypeid, date, entrytimestamp 

FROM ratedefinitions, 
(SELECT ratetypeid, MAX(entrytimestamp) AS max_timestamp FROM Rates 
GROUP BY ratetypeid) AS inner_table

WHERE

inner_table.ratetypeid = ratetypeid
AND innertable.max_timestamp = timestamp