Heim  >  Artikel  >  Backend-Entwicklung  >  Wie wähle ich Zeilen mit dem Maximum „created_at“ für jede eindeutige „seller_id“ in Laravel Eloquent aus?

Wie wähle ich Zeilen mit dem Maximum „created_at“ für jede eindeutige „seller_id“ in Laravel Eloquent aus?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 12:15:30285Durchsuche

How to Select Rows with the Maximum `created_at` for Each Unique `seller_id` in Laravel Eloquent?

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!

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