Comment obtenir le dernier message des conversations dans le système de messagerie? ie. écran d'accueil de (WhatsApp)SQL - Dernière conversation Liste des messages
J'ai créé cette procédure stockée mais impossible d'obtenir le résultat correct.
SELECT
Max(msg.msgThread) as msgThread,
Max(msg.msgId) AS msgId,
Max(msg.msgDate) AS msgDate,
min(DATEDIFF(MINUTE,msgCreatedDate,GETUTCDATE())) AS mintuesago,
msgReceiverId,
msgSenderId,
max (msgmsg) as msg, --I am getting alpabatic max msg instead last msg.
usr.umName,
usr.umProfilePic
FROM messages AS msg
Inner Join usermaster AS usr ON ((msg.msgSenderId = usr.umId)
or (msg.msgReceiverId = usr.umId))
WHERE
--usr.umId=msg.msgReceiverId
usr.umId!=3198
and (msg.msgSenderId=3198 or msg.msgReceiverId =3198)
GROUP BY usr.umName, usr.umProfilePic, msgReceiverId, msgSenderId, msgmsg
--,msgSentById
ORDER BY max(DATEDIFF(MINUTE,msgDate,GETUTCDATE()))
avec cela, je peux obtenir la liste des utilisateurs, mais lorsque les deux utilisateur d'envoyer des messages à l'autre il donne deux lignes avec dernier message à la fois l'utilisateur.
Tag dbms utilisés. (Beaucoup de SQL spécifique au produit là ...) – jarlh
Je suggère de créer un Fiddle SQL qui a quelques données à titre d'exemple. Sans cela, il sera très difficile de répondre. http://sqlfiddle.com/ – jhilden