mysql - 从表中选择具有不同列值的行

标签 mysql sql database database-design

在我的基于线程的消息传递系统中,表架构是

> 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/

相关文章:

mysql选择表,其中行数取决于两列中的动态值

sql - 如何使用 ozzo-dbx 包加入 PostgreSQL?

数据库约束

php - mysql如何合并一个表中相似的记录

mysql - Node.Js - mysql 连接没有输出

sql - 在 SQL 中创建反对称 key

php - Like 按钮不会在 sql 数据库中递增

mysql - 自引用表。 MySQL

mysql - Qt 使用数据库检查登录

java - HSQ Hibernate 更新问题