Heim >Datenbank >MySQL-Tutorial >Wie wähle ich den neuesten Sale für jeden Verkäufer in Laravel Eloquent aus?
Auswählen aller Zeilen mit dem maximalen erstellten_at-Wert für jede seller_id in Laravel Eloquent
Ihre Tabelle enthält eine Liste von Verkaufstransaktionen mit Spalten einschließlich ID, Seller_ID, Betrag und Created_at. Um die aktuellste Zeile für jede eindeutige Verkäufer-ID abzurufen, können Sie die folgenden Techniken anwenden:
Verwenden einer SQL-Abfrage
Um eine benutzerdefinierte SQL-Abfrage direkt auszuführen, können Sie Verwenden Sie die DB-Fassade in Laravel:
$latestSales = DB::select(DB::raw(' SELECT s.* FROM snapshot s LEFT JOIN snapshot s1 ON s.seller_id = s1.seller_id AND s.created_at < s1.created_at WHERE s1.seller_id IS NULL '));
Verwenden von Eloquent Query Builder
Alternativ können Sie den Abfrage-Builder von Laravel verwenden, um das gleiche Ergebnis zu erzielen:
$latestSales = DB::table('snapshot as s') ->select('s.*') ->leftJoin('snapshot as s1', function ($join) { $join->on('s.seller_id', '=', 's1.seller_id') ->whereRaw('s.created_at < s1.created_at'); }) ->whereNull('s1.seller_id') ->get();
Beide Techniken rufen alle Zeilen mit den maximalen erstellten_at-Werten für alle eindeutigen seller_id-Werte ab Dein Tisch.
Das obige ist der detaillierte Inhalt vonWie wähle ich den neuesten Sale für jeden Verkäufer in Laravel Eloquent aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!