Mysql
 sql >> Base de données >  >> RDS >> Mysql

Join Mysql basé sur max (horodatage)

Ce problème est assez fréquent. Vous avez besoin d'une sous-requête pour jeter l'horodatage maximum et le ratetypeid (qui est la base du regroupement), puis sélectionnez tout le reste à partir d'une jointure interne de ces lignes de sous-requête et tout le reste.

Pour 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