【发布时间】:2018-03-16 17:39:47
【问题描述】:
我正在尝试获取用户回复的最后 5 条消息。查询结果中不能重复用户:
SELECT
message.id_message AS id_message, message.message AS message,
user.id_user AS id_user, user.name AS name, user.lastname AS lastname
FROM user
JOIN message ON message.id_user = user.id_user
JOIN reply ON reply.id_message = message.id_message
WHERE
user.flg_ban IS NULL
AND
message.id_message IN (SELECT MAX(id_message) FROM message GROUP BY id_user)
AND
reply.id_reply IS NOT NULL
GROUP BY user.id_user
ORDER BY message.id_message DESC LIMIT 5
结果应该是:
- Skyler:这是给 Skyler 的唯一消息
- 杰西:给杰西的第三条信息
- Walter:给 Walter 的第二条信息
由于某种原因,我只获得了一条记录。
【问题讨论】:
-
你的 sqlfiddle 是错误的 .. 你已经使用了起始表格 6 但 user_id 与 1, 2 相关......所以是不完整的
-
sqlfiddle.com/#!9/9452a/2 只是一个示例 .. 我没有评估相应的名称和 id 。对于不同的结果使用 distinct 子句而不是 group by
-
@scaisEdge 抱歉,链接已更新
-
在实际的 sqlfiddle 中有 3 条记录 .. 就像你的问题 .. 解释得更好,就像我的 sql fiddle 中一样