3

我正在编写一个私人消息系统,它运行良好。我需要为组消息编写一个 SQL 查询,并且该消息应该只出现一次。简而言之,我想要一个像 Facebook 一样的“对话视图”,只显示发送或接收的最新消息。后端脚本是私人消息系统中的 PHP。

我附上了一个屏幕截图:

截屏

这是我正在使用的附加查询。

测试demo上传到这个地址:http: //developers89.byethost14.com/messages/

4

1 回答 1

7
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 ...
于 2013-02-01T14:16:02.127 回答