sql >> Databasteknik >  >> RDS >> Mysql

Hämta den senaste raden med grupp efter och Laravel

Problemet är att resultatuppsättningen först grupperas sedan beställde . Du kan använda kapslade val för att få vad du vill ha.

SQL-fråga:

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

Med Laravel:

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

Du behöver bara lägga till din where() klausuler.



  1. WhoIsActive Runner

  2. Laravel 4:multipel där med eller i vältalig

  3. Hur kan jag schemalägga ett jobb för att köra en SQL-fråga dagligen?

  4. MySQL och JDBC med rewriteBatchedStatements=true