【发布时间】:2014-01-25 05:41:40
【问题描述】:
这是我的mysql查询:
SELECT t.id,
t.user_id_1,
t.user_id_2,
m.id as message_id,
m.from_user_id,
m.text,
max(m.date_sent),
m.viewed
FROM thread t
JOIN message m
ON t.id = m.thread_id
WHERE t.user_id_1 = 1
OR t.user_id_2 = 1
GROUP BY t.id
有两个表,线程和消息。线程表存储记录(每条记录是一个会话),消息表存储消息。它将有一个指向线程表的外键来指示消息在哪个线程中。
我正在尝试获取线程列表,以及每个线程的最新消息。但上述方法不起作用。
我想要做的是,它获取所有线程,并将其与消息(在该线程中)连接起来。然后按线程 id 对消息进行分组,并使用 max 函数给出的最近日期的记录。
但它会给出一些带有最近日期的随机消息(该消息来自不同的记录)。
有谁知道如何解决这个问题?
【问题讨论】:
标签: mysql select join group-by