MySQL - 用2个键分组

时间:2012-06-22 20:45:05

标签: mysql database-schema

假设您有MySQL Database Schema from_idto_id,两者都代表数字用户ID。上下文是基于文本的对话,类似于聊天。

query database关于选择user 1与他/她与之对话的所有其他用户之间交换的所有最后消息的列表的问题{{1}}。

2 个答案:

答案 0 :(得分:0)

如果您需要1个用户:

SELECT * FROM TABLENAME 
WHERE from_id = USERID1 OR to_id = USERID1 
ORDER BY `timestamp` DESC
LIMIT 1

此处timestamp - 您的时间戳字段。

并且适用于所有用户:

select text, id, ts 
from (select text, from_id as id,ts from chat union select text, to_id as id,ts from chat) T 
group by id 
having ts=max(ts)

这里ts - 时间戳

答案 1 :(得分:0)

SELECT * FROM TABLENAME WHERE from_id = USERID1 OR to_id = USERID1 

您需要将所需的列替换为“*”以获得更好的性能。

如果您有日期时间字段,则可以按此搜索。