SQL : Group by
Posté : 16 juil. 2013, 19:05
Bonjour,
Dans ma boite de réception, je rassemble tous les messages reçus de chaque membre.
Mais je souhaiterais grouper les messages du même expediteur et mettre à jour le dernier message reçu.
Pour ça je fais :
Ex : Si membre1 envoi un msg au membre2, j'aimerais que les messages s'affichent aux 2 membres (Comme une conversation des 2 membres)
L'intérêt serait que l'expediteur voit quel message il a envoyé
Merci d'avance pour votre aide
Dans ma boite de réception, je rassemble tous les messages reçus de chaque membre.
Mais je souhaiterais grouper les messages du même expediteur et mettre à jour le dernier message reçu.
Pour ça je fais :
SELECT wa_communaute.id, wa_communaute.prenom, wa_communaute.nom, wa_communaute.pseudo, wa_mp.mp_id, wa_mp.mp_msg, wa_mp.mp_time, wa_mp.mp_lu
FROM (SELECT mp_expediteur, MAX(mp_id) AS max_id FROM wa_mp
WHERE wa_mp.mp_destinataire = :destinataire
GROUP BY mp_expediteur) AS last_message
JOIN wa_mp ON wa_mp.mp_expediteur = last_message.mp_expediteur AND wa_mp.mp_id = last_message.max_id
JOIN wa_communaute ON wa_mp.mp_expediteur = wa_communaute.id ORDER BY wa_mp.mp_id DESC
La requête fonctionne, le problème c'est que j'aimerais que les messages s'affichent chez les 2 membres.Ex : Si membre1 envoi un msg au membre2, j'aimerais que les messages s'affichent aux 2 membres (Comme une conversation des 2 membres)
L'intérêt serait que l'expediteur voit quel message il a envoyé
Merci d'avance pour votre aide