sql >> Database >  >> RDS >> Mysql

Haal de meest recente rij op met groep op en Laravel

Het probleem is dat de resultatenset eerst wordt gegroepeerd vervolgens besteld . Je kunt geneste select gebruiken om te krijgen wat je wilt.

SQL-query:

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

Met Laravel:

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

U hoeft alleen uw where() . toe te voegen clausules.



  1. Hoe kan ik met MySQL een kolom met de recordindex in een tabel genereren?

  2. Vind maandagen tussen 2 data

  3. PARTITIE DOOR met en zonder KEEP in Oracle

  4. MariaDB JSON_OBJECTAGG() uitgelegd