这是我的代码:
mysql_query("SELECT * FROM messages WHERE to_user_id = '$user_id' GROUP BY from_user_id ORDER BY read,sent_date DESC")
这是我的桌面结构

我使用该GROUPY BY from_user_id语句简要显示"对话"列表而不是每条消息.像这样

但是,正如你在图片中看到的那样,前两个是错误的方式,第一个说"1周前",下面的一个说"2天前".这些错误顺序的原因是由于GROUP BY from_user_id声明.因为它将来自该用户的所有消息分组,并且它不会有最近的时间.
所以我的问题是:
我怎么能通过 GROUP BY from_user_id 最近的记录?
您SELECT不能列入GROUP BY或未允许的功能中列出的列.这是如何GROUP BY工作的.
虽然大多数其他SQL风格都会在这样的查询中失败,但MySQL却没有.相反,它提供任意结果 - 你所看到的.
您可以通过几种不同的方式解决此问题.例如:
SELECT在单独的查询中使用的最新用户对话的IDGROUP BY.JOIN组在一个查询中完成所有操作.| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |