Laravel Eloquent: Zeilen mit Maximum Created_at auswählen
In Laravel Eloquent kann es vorkommen, dass Sie alle Zeilen mit dem Maximum auswählen müssen created_at-Wert für jede eindeutige seller_id in einer Tabelle. So können Sie dies erreichen:
Verwenden einer Raw-SQL-Abfrage
Ein Ansatz besteht darin, eine Raw-SQL-Abfrage zu verwenden, die unter bestimmten Umständen effizienter sein könnte:
<code class="sql">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
Query Builder verwenden
Alternativ können Sie den Query Builder von Laravel für einen objektorientierteren Ansatz verwenden:
<code class="php"> 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();</code>
Beide Methoden werden Gibt eine Sammlung von Objekten zurück, die die neuesten Zeilen für jede eindeutige seller_id in der Snapshot-Tabelle darstellen.
Das obige ist der detaillierte Inhalt vonWie wähle ich Zeilen mit dem Maximum „created_at' für jede eindeutige „seller_id' in Laravel Eloquent aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!