Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Eloquent Finden der Zeile mit dem Maximalwert mit Gruppierung

Wenn Sie Raw Builder verwenden, können Sie unten verwenden, wenn Sie Eloquent verwenden, entfernen Sie einfach Tabellennamen und ersetzen Sie sie durch Ihre Modellinstanz

DB::table(DB::raw('shop as s1'))
   ->join(
       DB::raw('(SELECT article, MAX(price) AS price FROM shop GROUP BY article) as s2'), 
     function($query) {
       $query->on('s1.article', '=', 's2.article')
             ->on('s1.price', '=', 's2.price');
     })->get();