Boite de réception chat one to one

Résolu
franksh Messages postés 54 Date d'inscription dimanche 8 juillet 2018 Statut Membre Dernière intervention 23 août 2024 - 31 oct. 2023 à 20:17
franksh Messages postés 54 Date d'inscription dimanche 8 juillet 2018 Statut Membre Dernière intervention 23 août 2024 - 1 nov. 2023 à 21:22

Hi trick or treat, 

Je voudrais avoir comment obtenir le dernier enregistrement de chaque groupe, recevoir uniquement le dernier message de chaque utilisateur, comme dans une boite de réception

voici mes table 

messages

  1. id
  2. id_sender
  3. id_receiver
  4. msg
  5. date_msg

table users en faisan une jointure avec table messages

j'ai un script qui fonctionne mais très lente, je suis perdu si vous avez s'il vous plaît de idée de piste ou même corriger ce script j'en serai ravi;

SELECT u.name, u.id as iud, m.msg,
   m.created_atmsg, m.id_sender, m.id_receiver, u.avatar, m.id as mid,
   m.seen as seen_, m.created_atmsg as datemessage, u.sex, m.lu_
   FROM (
    SELECT IF(r.user_id1 = :id, r.user_id2, r.user_id1) id, MAX(m.id) max_id
     FROM friends_relationships r
     LEFT JOIN messages m
     ON ((m.id_sender, m.id_receiver) = (r.user_id1, user_id2)
     OR (m.id_sender, m.id_receiver) = (user_id2, r.user_id1))
     WHERE (r.user_id1 = :id OR user_id2 = :id)
     GROUP BY IF(m.id_sender = :id, m.id_receiver, m.id_sender), r.id) AS DM
     LEFT JOIN messages m ON m.id = DM.max_id
     LEFT JOIN users u ON u.id = DM.id
     ORDER BY m.created_atmsg DESC

Merci d'avance et bonne soirée a vous
Windows / Chrome 118.0.0.0

1 réponse

franksh Messages postés 54 Date d'inscription dimanche 8 juillet 2018 Statut Membre Dernière intervention 23 août 2024 1
1 nov. 2023 à 21:22

Résolu par Bobot incroyable 

0