這裏是我的代碼: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