php - 如何从聊天对话中获取最后一条消息?

标签 php mysql cakephp

嗨,我有一个表名称messages,我想从两个用户之间的聊天对话中获取最后一条消息。

表 -

id  from_id   to_id    text     created
========================================
1      1        2     hi        2014-12-01 10:30:10
2      2        1     Hello     2014-12-01 10:30:20
3      3        1     Hi chinu  2014-12-01 10:32:02
4      3        1     hw r u?   2014-12-01 10:32:22
5      2        1     h r u?    2014-12-01 10:33:01

请检查我的查询=

//$user_id=$this->Session->read('Auth.User.id');
$user_id=1;
$fields=array('DISTINCT(Message.from_id), Message.id, Message.text, Message.created');

    $this->Paginator->settings = array(
            'conditions'=>array('Message.to_id'=>$user_id),
            'limit' => 30,
            'order' => array(
                'Message.created' => 'DESC',
                'Message.id' => 'DESC'
            ),
            'fields'=>$fields,
            'group'=>array('Message.from_id')
    );
    $inbox = $this->Paginator->paginate('Message');
    pr($inbox);
    $this->set('inbox', $inbox);

我想获取 2 和 3 id 之间的最后一条消息对话。输出看起来像 -

id  from_id   to_id    text     created
========================================
5      2        1     h r u?    2014-12-01 10:33:01
4      3        1     hw r u?   2014-12-01 10:32:22

请帮助我。如果您不知道 cakephp,请在此处发布核心 php MySQL 查询。

谢谢 聊天乐趣

最佳答案

请检查此查询 -

SELECT * FROM (SELECT DISTINCT * FROM messages WHERE (from_id=1 OR to_id=1) ORDER BY created DESC) as m GROUP BY `from_id`

关于php - 如何从聊天对话中获取最后一条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27295124/

相关文章:

cakephp - 如何在 CakePHP 1.3 中更新 HABTM 关联模型?

php - branchout 如何进行通知?

PHP 变量不会在后续查询中被覆盖

mysql - 问题 仅当表中尚不存在时才插入值

mysql - 无法使用 phpMyAdmin 在关系 View 中设置关系

mysql - 如何在 find() cakephp 中指定范围

php - 在 Zend Framework 中关闭 MySQL 连接(或 "Too many connections"解决方案)

php - Composer 强制安装包忽略依赖版本

java - Heroku 继续使用 Postgres 而不是 MySQL

jquery - CakePHP 3 - 允许用户分配和更改记录查询的顺序