Bonjour,
Je vous expose mon problème :
Je dispose d'une table 'conversation' avec les champs suivant (id INT, date_create DATETIME)
et je dispose d'une autre table 'inbox' avec les champs suivant (id INT, id_conversation, message TEXT, date_creation)
-------TABLES----------------
conversation(id, date_creation)
inbox(id, #id_conversation, message TEXT, date_creation DATETIME)
-------------------------------
Je voudrais récupérer pour chaque conversation le dernier inbox en date.
Je fais alors la requête suivante (MySQL):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT *, MAX(i.date_creation) AS date_dernier_message FROM conversation c JOIN inbox i ON c.id = i.id_conversation GROUP BY c.id HAVING date_dernier_message = i.date_creation
Mon problème est qu'il n'y a pas de correspondance entre le MAX et le bon inbox.
Est il possible de faire ça directement (1 seule requête) et donc d'améliorer ma requête ou faut-il passer par des sous requêtes.
Merci d'avance.
Partager