sql >> Database teknologi >  >> RDS >> Mysql

Få seneste række med gruppe efter og Laravel

Problemet er, at resultatsættet først bliver grupperet derefter bestilte . Du kan bruge indlejret valg for at få det, du ønsker.

SQL-forespørgsel:

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 skal blot tilføje din where() klausuler.



  1. Laravel 4:multiplum hvor med eller i veltalende

  2. Hvordan bruger man en PostgreSQL container med eksisterende data?

  3. Hvordan forudindlæser man tabeller i INNODB-bufferpuljen med MySQL?

  4. Henter Lås ventetimeout overskredet; prøv at genstarte transaktionen, selvom jeg ikke bruger en transaktion