【发布时间】:2023-01-17 22:13:01
【问题描述】:
我有一个主题的作者列表。该列表显示作者姓名和该主题内的最后发布时间。
会员也可以在主题中更频繁地写作。因此,在 poster_id 上设置了“group by”。
整个列表应根据写入日期排序。最新的优先。所以我放置了 maxtime DESC。
问题:
列表输出工作得很好,但作者最后一篇文章的日期不是最后一个 post_time,而是第一个 post_time。
桌子 ”用户“:
| user_id | username |
|---|---|
| 1 | Marc |
| 2 | Paul |
| 3 | Sofie |
| 4 | Julia |
桌子 ”帖子“
| post_id | topic_id | poster_id | post_time |
|---|---|---|---|
| 4565 | 6 | 1 | 999092051 |
| 4567 | 6 | 4 | 999094056 |
| 4333 | 6 | 2 | 999098058 |
| 7644 | 6 | 1 | 999090055 |
这是我的查询:
SELECT
p.poster_id,
p.post_time,
p.post_id,
Max(p.post_time) AS maxtime,
u.user_id,
u.username,
FROM POSTS as p
INNER JOIN USERS as u ON u.user_id = p.poster_id
WHERE p.topic_id = 6
GROUP BY p.poster_id
ORDER BY maxtime DESC
如何显示 poster_id 的最后一个 post_time 而不是第一个。
非常感谢你。
【问题讨论】:
-
post_timecolumn 是什么数据类型?如果启用了 sql_mode only_full_group_by(顺便说一句应该启用),您的查询将无效 -
post_time 是 int(11)。我想我需要在查询中进行第二个查询以获取 poster_id 的最新 post_time,但我不知道如何连接它。
-
预期结果应该是什么?
-
在每行中为每个 poster_id 显示最后一个 post_time 而不是第一个 post_time。你明白吗?非常感谢您的宝贵时间。
-
这对我来说还不够清楚。您应该在问题中以文本格式添加预期结果。你可以试试this example