MySQL 区分最新记录成对分组

标签 mysql

我有 MySQL 表:

    id  author_id  recipient_id  message        message_time
    1   16         18            lorem ipsum1    2015-10-20 14:24:49
    2   18         16            lorem ipsum2    2015-10-21 11:14:51
    3   16         22            lorem ipsum3    2015-10-21 14:42:01
    4   18         16            lorem ipsum4    2015-10-21 16:53:55
    5   16         17            lorem ipsum5    2015-10-22 10:37:44

我只想获取最新的记录,但按对分组,例如:

    WHERE `author_id` = '$var' OR `recipient_id` = '$var'

我的预期结果:

    message        message_time
    lorem ipsum3    2015-10-21 14:42:01
    lorem ipsum4    2015-10-21 16:53:55
    lorem ipsum5    2015-10-22 10:37:44

我很乐意提供建议!

最佳答案

试试这个方法

select a.message, max(b.message_time) 
from yourTable a, yourTable b
where  a.author_id = $var OR a.recipient_id = $var
and a.id = b.id
group by a.message;

关于MySQL 区分最新记录成对分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33328521/

相关文章:

mysql - 我该如何处理 Coupon 数据库设计?

mysql-error-1064 - 我的 SQL 表神秘丢失

php - 查询未按顺序返回

mysql - 结果太慢,任何人都可以提供提升(查询工作文件中的 10 条记录,但需要时间来获取更多记录))

mysql - Excel 到 MySQl 但主机不支持远程地址

mysql - 如何在数据库中存储不同长度的列表/订单?

MySQL - JSON_CONTAINS 不适用于带引号或逗号分隔字符串的数组?

php - 相同和不同表中不同 id 的多个联接

mysql - 无法在 Visual Studio 2017 中连接到 MySQL 数据源

javascript - 将信息从 javascript 传递到使用 php 查询数据库时出错