Problème avec une boucle mysql et group by

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -  
onc Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voici ma situation de départ.
J'ai une table globalement défini comme suis.
[ id | ref| statu | date ]

Elle fonctionne de la manière suivante.
A chaque changement de statu, je fais un nouvel enregistrement ce qui me permet d'avoir un historique des changements.

Je souhaite faire une boucle me permettant d'afficher de manière groupé chaque référence (ref) et le dernier statu de chacune.

Je pensais réussir à faire ça avec une seule requête.
J'ai donc tenté:
SELECT * FROM ma_table GROUP BY ref ORDER BY date DESC

Je problème est qu'il ne m'affiche pas le dernier statu de chacun et en fait c'est assez logique.
En fait, il faudrait qu'en groupant, il le fasse en retenant le dernier enregistrement.
Je sèche un peu...

Auriez-vous une idée à me suggérer?

Merci par avance.


1 réponse

onc Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   66
 
La comme ça sans trop réfléchir moi je ferais une jointure...

SELECT * FROM `ma_table` T1
INNER JOIN (SELECT `ref`, Max(`date`) as `MaxDate` FROM `ma_table` GROUP BY `ref`) T2
ON T2.`ref`=T1.`ref` AND T2.`MaxDate`=T1.`date`
0