sql >> データベース >  >> RDS >> Mysql

groupbyとLaravelで最新の行を取得する

    問題は、結果セットが最初にグループ化されることです。 次に注文 。ネストされた選択を使用して、必要なものを取得できます。

    SQLクエリ:

    SELECT t.* FROM (SELECT * FROM messages ORDER BY created_at DESC) t GROUP BY t.from
    

    Laravelの場合:

    $messages = Message::select(DB::raw('t.*'))
                ->from(DB::raw('(SELECT * FROM messages ORDER BY created_at DESC) t'))
                ->groupBy('t.from')
                ->get();
    

    where()を追加するだけです 条項。



    1. PL/pgSQL匿名コードブロック

    2. MariaDBでのMONTH()のしくみ

    3. ストアドプロシージャへのパラメータとしてのデータテーブルの受け渡し

    4. mySQLMAX値をJava変数に設定します