Bonjour bonjour !

J'ai ce petit problème lors de la requête des participants à une discussion, dont je voudrais aussi avoir la date du dernier message et son contenu. Ceci se base sur une seule table, messages, contenant notamment les champs id_user, content, datetime.
Je simplifie autant que possible (en prenant soin de ne rien enlever d'important), mais voici ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT
  id_user,
  MAX(datetime) AS datetime,
  content ???
FROM messages
GROUP BY id_user
ORDER BY datetime DESC');
Vous l'aurez compris, mon problème consiste à extirper le contenu du dernier message de chaque auteur. Le GROUP BY fait que seul la première valeur est sélectionnée, donc le message le plus ancien (la table étant bien entendu ordonnée ainsi). J'ai songé à diverses possibilités, comme faire un GROUP_CONCAT(content) ORDER BY datetime DESC en mettant précédemment group_concat_max_len à 1... mais c'est un petit trick qui peut sûrement être évité. J'aimerai aussi éviter les solutions à base de requêtes imbriquées, que je pense pénalisante pour la rapidité.

Voilà, je bloque, et votre avis serait grandement apprécié !

Merci d'avance
Gagee