在我的基于线程的消息传递系统中,表架构是
> messages table
id(int auto incr primary key)
body(varchar)
time(datetime)
>message_reference table
id(int auto incr primary key)
message_id(forgain key from message table)
sender
receiver
在这里,我想选择发送给新接收者的第一个消息ID,发送者是登录的用户。
通过多个查询和一些代码来完成此操作显然是可能的,但是可以通过单个查询来完成性能问题吗?
最佳答案
你可以试试
编辑:
如果id是自增的,那么id也会随着时间增加,你可以使用:
SELECT message_reference.message_id, message_reference.receiver, messages.body
FROM message_reference, messages
WHERE message_reference.message_id IN (SELECT MIN(message_reference.message_id)
FROM message_reference
GROUP BY message_reference.receiver)
AND message_reference.message_id = messages.id AND message_reference.sender = <sender>
关于mysql - 从表中选择具有不同列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596879/