【发布时间】:2013-01-07 00:57:11
【问题描述】:
我正在从我的数据库中提取一些对话。它们按 user_from 列分组。
截至目前,它输出最旧的消息。我希望它显示最新消息。
最简单的方法是什么?
SELECT *
FROM (`mail`)
JOIN `users` ON `users`.`id` = `mail`.`user_from`
JOIN `users_info` ON `users_info`.`user_id` = `mail`.`user_from`
WHERE `user_to` = '1'
GROUP BY `user_from`
ORDER BY `mail`.`date` desc
邮件表
用户表(sn-p)
这是当前的工作代码。 SecretAgent 发送了比 来自该机构的邮件更新的消息,它应该显示该消息
【问题讨论】:
-
@xQbert 为什么?,最新消息是日期最长的消息
-
猜那个邮件是ID,你为什么不通过
mail.id desc订购?或者是从不同地方插入的电子邮件,更高的 id 不一定是最新的电子邮件? -
那不行,它仍然选择最旧的一个
-
@MichaelBerkowski 感谢此评论:“这可能(可能)仍会产生不可靠的结果。MySQL 允许 SELECT 中的列不在 GROUP BY 中,通常会导致其他列的值不确定"
-
请发布您的表架构。需要更多信息才能正确执行此操作。
标签: php mysql sql codeigniter