在mysql中选择多列的DISTINCT行

Tec*_*chy 3 php mysql sql distinct

我有一个名为sk_messages.It的结构如下:

msg_id     msg_from_user_id  msg_to_user_id  msg_text   msg_date     msg_status  

 1              12                14          hai...   23-12-2013      unread

 2              12                14         ....     ...             unread

 3              13                 14        ...      ..               unread
Run Code Online (Sandbox Code Playgroud)

我的要求是我想要显示当前用户的所有消息,条件是发送者应该显示单个消息,即使他发送了多条状态未读的消息.也就是说,从上面的上下文中,单个消息应该显示ID为12的用户.我尝试了以下查询,但它不起作用.

SELECT DISTINCT (msg_from_user_id), msg_text, msg_date
 FROM sk_messages
 WHERE msg_to_user_id =  '$user_id'
 AND msg_status =  'unread'
 ORDER BY msg_date


$user_id is the id of the login user
Run Code Online (Sandbox Code Playgroud)

Dip*_*mar 6

尝试group通过id用户.

SELECT msg_text, msg_date
 FROM sk_messages
 WHERE msg_to_user_id =  '$user_id'
 AND msg_status =  'unread'
GROUP BY msg_from_user_id
 ORDER BY msg_date
Run Code Online (Sandbox Code Playgroud)

测试代码以获取最新消息

'SELECT * FROM ( SELECT * FROM message WHERE user_id = 1 ORDER BY created DESC LIMIT 1) as msg  GROUP BY user_id '
Run Code Online (Sandbox Code Playgroud)