1

好的,所以基本上我正在我的 kohana 项目中创建一个 pm 收件箱

到目前为止,我已经能够在此查询没有问题的情况下检索消息

$messages = DB::select('users.username', 'users.id', 'profiles.profile_picture', 'messages.thread', 'messages.subject', 'messages.content', array('messages.id', 'mid'))->from('messages')->join('users', 'LEFT')->on('users.id', '=', 'messages.from_id')
                ->join('profiles', 'LEFT')->on('profiles.user_id', '=', 'messages.from_id')->where('messages.to_id', '=', $user)->and_where('messages.deleted', '=', '0')->execute();

我的问题是,如果有来自同一用户的多条消息,我只想显示最后一条消息。这应该在查询中完成还是在呈现结果时使用 php 完成。

我有一个我认为可以使用的日期列,但我不确定最好的方法。

谢谢

4

1 回答 1

2
$messages = DB::select('users.username', 'users.id', 'profiles.profile_picture', 'messages.thread', 'messages.subject', 'messages.content', array('messages.id', 'mid'))
  ->from('messages')
  ->join('users', 'LEFT')->on('users.id', '=', 'messages.from_id')
  ->join('profiles', 'LEFT')->on('profiles.user_id', '=', 'messages.from_id')
  ->where('messages.to_id', '=', $user)
  ->and_where('messages.deleted', '=', '0')
  ->order_by('messages.id', 'desc')
  ->offset(0)
  ->limit(1)
  ->execute();
于 2012-06-16T13:34:11.897 回答