Heim >Datenbank >MySQL-Tutorial >Wie wähle ich den neuesten Sale für jeden Verkäufer in Laravel Eloquent aus?

Wie wähle ich den neuesten Sale für jeden Verkäufer in Laravel Eloquent aus?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 06:02:13975Durchsuche

How to Select the Latest Sale for Each Seller in Laravel Eloquent?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn