1

OK、基本的にはコハナプロジェクトで午後の受信トレイを作成しています

これまでのところ、このクエリで問題なくメッセージを取得することができました

$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 に答える