J'ai actuellement les tableaux ci-dessous pour un forum de messagerie privée:MySQL Select Déclaration - Pour les messages
alt text http://img159.imageshack.us/img159/45/pmdata.jpg
alt text http://img504.yfrog.com/img504/3968/pminfo.jpg
Ce que je suis en train de faire est sortie une « boîte de réception » qui affiche le thread le plus récent en haut et groupe par thread (ce qui signifie, vous ne voyez pas le même thread deux fois dans votre boîte de réception), peu importe qui est l'expéditeur.
Ce que j'ai en ce moment fonctionne bien pour les messages simples entre 2 heures. Cependant, une fois qu'un troisième utilisateur répond au même thread, il ne s'affiche pas correctement. Ma requête en cours est la suivante:
SELECT pm_info.is_read, sender.usrFirst as sender_name, pm_data.date_sent, pm_data.title, pm_data.thread_id, pm_data.id as dataid, thread_max_date_sent
FROM pm_info
INNER JOIN pm_data ON pm_info.message_id = pm_data.id
INNER JOIN tblUsers AS sender ON pm_data.sender_id = sender.usrID
INNER JOIN (SELECT thread_id, sender_id, MAX(date_sent) AS thread_max_date_sent FROM pm_data GROUP BY thread_id, sender_id) deriv1 ON pm_data.thread_id = deriv1.thread_id AND pm_data.date_sent = deriv1.thread_max_date_sent AND pm_data.sender_id = deriv1.sender_id
WHERE pm_info.receiver_id = '$usrID'
ORDER BY deriv1.thread_max_date_sent DESC
En supposant que $ usrid = 68 (donc, receiver_id = 68), il affiche ceci:
From: Kyle (pm_data.id = 18) RE: single message (thread_id= 13587)
From: Ed (pm_data.id = 12) RE: single message (thread_id= 13587)
From: Ed (pm_data.id = 8) RE: Test Number 2 (thread_id= 16256)
Remarquez comment la thread_id (13587) montre deux fois parce qu'il sont 2 expéditeurs différents.
Comment est-ce que je peux l'avoir juste afficher le plus récent thread_id, peu importe qui est l'expéditeur?
Merci beaucoup !!