2013-02-01 200 views
3

我正在編寫一個私人消息系統,它完美的工作。我需要爲組消息編寫一個SQL查詢,並且該消息應該只出現一次。總之,我想要一個像Facebook一樣的「對話視圖」,只顯示最新的消息,無論是發送還是接收。後端腳本是私人消息系統中的PHP。組私人消息系統

我連着屏幕截圖:

Screenshot

這裏是我使用的連接查詢。

測試演示上載該地址:?你嘗試過什麼] http://developers89.byethost14.com/messages/

+1

(http://www.whathaveyoutried.com/)參見[問諮詢】(HTTP://計算器。 com/questions/ask-advice)。 –

+0

對於羣組消息,請首先設計您的數據庫結構。您可以將receiver_id移動到單獨的表中,因此您具有'email_recipient(email_id(fk),recip_order,receiver_id(fk))'。收件人訂單是一個序號,按順序列出收件人(如果您將它們呈現在「收件人」字段中,則有用),並且「receiver_id」當然是誰將收到此電子郵件。這將允許您發送電子郵件給許多用戶 - 每個電子郵件每收件人一行。 – halfer

回答

6
SELECT * 
FROM conversation 
WHERE (LEAST(sender_ID, receiverID), GREATEST(sender_ID, receiverID), date) 
     IN 
     (
      SELECT LEAST(sender_ID, receiverID) x, 
        GREATEST(sende_ID, receiverID) y, 
        MAX(date) max_date 
      FROM conversation 
      GROUP BY x, y 
     ) 
     AND '$uid' IN (sender_ID, receiverID) 
//  AND other conditions if you have ....... 
// ORDER BY ..... 
// LIMIT ........ 
+0

Awsum ...它的工作謝謝 –

+0

不客氣':D' –