我現在有一個私人信息的論壇下面的表格:MySQL的Select語句 - 對於消息
alt text http://img159.imageshack.us/img159/45/pmdata.jpg
alt text http://img504.yfrog.com/img504/3968/pminfo.jpg
我試圖做的是輸出「收件箱」,其中顯示不管發件人是誰,最上面的線程和分組線程(也就是說,在收件箱中都看不到相同的線索)。
我現在擁有的適用於2個用戶之間的簡單消息。但是,一旦第三位用戶回覆到同一個線程,它將無法正確顯示。我的當前查詢是這樣的:
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
假定$ usrID = 68(因此,receiver_id = 68)時,它輸出該:
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)
通知所述的thread_id(13587)中的顯示方式的兩倍,因爲有是2個不同的發件人。
我怎麼能這樣只是顯示最近的thread_id,不管發件人是誰?
非常感謝!