sql >> Databáze >  >> RDS >> Mysql

Získejte nejnovější řádek pomocí group by a Laravel

Problém je v tom, že sada výsledků bude nejprve seskupena poté objednal . Chcete-li získat, co chcete, můžete použít vnořený výběr.

SQL dotaz:

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

S Laravel:

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

Stačí přidat vaše where() doložky.



  1. Barman Cloud – Část 2:Cloud Backup

  2. Jak seskupit podle objednávky DESC

  3. jak obnovit pohotovostní databázi z chybějícího archivního protokolu

  4. Vyladění MySQL pro rychlé vytváření sloupců/indexů během vývoje