带分组的 SQL SELECT

标签 sql sqlite

我需要从 2 个用户之间的每次对话中选择最后一条记录

我的 table :

id | sender_id | recipient_id | message
1     2           3              msg_1 
2     3           2              msg_2
4     2           3              msg_4
5     2           3              msg_5
7     4           3              msg_7
8     3           4              msg_8

选择后应该会找到这条记录

id | sender_id | recipient_id | message 
5     2           3              msg_5
8     3           4              msg_8

最佳答案

SELECT  m.*
FROM    mytable m
WHERE   id = ( SELECT   MAX(id)
           FROM     mytable
           WHERE    ( sender_id = m.sender_Id
                      OR recipient_id = m.sender_id
                    )
                    AND ( recipient_id = m.recipient_Id
                          OR sender_id = m.recipient_id
                        )
         )

关于带分组的 SQL SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769050/

相关文章:

sql - BigQuery 在进行过多的 UNION ALL 操作后提示 - 为什么会发生这种情况?我有什么选择?

ios - SQLite "file is encrypted or is not a database"

java - Android数据库最佳实践

访问 SQLite 数据库的 JavaScript 函数

mysql - 为这个 MySQL 查询寻找最佳索引

sql - 将两个 SQL 查询的结果组合为单独的列

c# - Entity Framework - 大写第一个属性名称字母

mysql - 为 SQL 分配别名

c# - 不支持在 xamarin.android 上使用 LINQ 连接 SQLite.Net 中的表

sqlite - SQLite/FoxPro更新无法使用=查找记录,但可以使用LIKE查找记录