kohana查询仅显示最新记录

时间:2012-06-11 19:52:27

标签: php mysql kohana

好的,基本上我正在我的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。

我有一个日期专栏,我想我可以用它,但我不确定最好的方法。

由于

1 个答案:

答案 0 :(得分: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();