Php 组专用消息传递系统

Php 组专用消息传递系统,php,mysql,sql,greatest-n-per-group,Php,Mysql,Sql,Greatest N Per Group,我正在编写一个私人信息系统,它工作得很好。我需要为组消息编写一个SQL查询,该消息应该只出现一次。简而言之,我想要一个“对话视图”,就像Facebook一样,只显示发送或接收的最新消息。后端的脚本是专用消息传递系统中的PHP 我附上了一个屏幕截图: 这是我使用的附加查询 测试演示上载到此地址:请参阅。对于组消息,请先设计您的数据库结构。您可以将收件人id移动到一个单独的表中,这样您就有了电子邮件收件人(电子邮件id(fk)、订单、收件人id(fk))。收件人顺序是按顺序列出收件人的序号(如果在

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

我附上了一个屏幕截图:

这是我使用的附加查询


测试演示上载到此地址:

请参阅。对于组消息,请先设计您的数据库结构。您可以将收件人id移动到一个单独的表中,这样您就有了
电子邮件收件人(电子邮件id(fk)、订单、收件人id(fk))
。收件人顺序是按顺序列出收件人的序号(如果在“收件人”字段中呈现收件人,则很有用),当然,“收件人id”是接收此电子邮件的人。这将允许您向多个用户发送电子邮件-每个收件人每封电子邮件一行。
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 ...