在我的基于线程的消息传递系统中,表模式是
> 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,发送者是登录的用户。
使用多个查询和一些代码显然可以做到这一点,但是否可以使用单个查询来解决性能问题??
发布于 2011-09-29 19:54:26
你可以试试
编辑:
如果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>https://stackoverflow.com/questions/7596879
复制相似问题