这里是我的代码:SQL GROUP BY选择
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
由最近的记录?
的数据库软件? – 2012-01-13 18:52:02
刚刚重新绑定了MySQL。由于包含PHP代码中的'mysql_query'语句,并且因为只有MySQL允许您以这种方式滥用GROUP BY语义,所以它必须是。 :S – 2012-01-13 18:53:01
按from_user_id分组意味着无论涉及多少个对话,该用户的帖子都会有一个行输出。您的表是否有对话ID字段? – 2012-01-13 18:56:33