Wie rufe ich mit Laravel Eloquent den neuesten Snapshot für jeden Verkäufer ab?

Mary-Kate Olsen
Freigeben: 2024-10-26 13:55:02
Original
245 Leute haben es durchsucht

How to Fetch the Latest Snapshot for Each Seller Using Laravel Eloquent?

Eloquente Abfrage zum Auswählen der neuesten Zeilen, gruppiert nach Verkäufer

Bei einer Tabelle mit verkäuferbezogenen Informationen, einschließlich erstellter_at-Zeitstempeln, ist dies häufig erforderlich Rufen Sie für jeden Verkäufer nur die aktuellsten Einträge ab. Diese Aufgabe kann mit Laravel Eloquent effektiv gelöst werden.

Um dies zu erreichen, können wir eine MySQL-Unterabfrage verwenden, die die neueste Zeile für jede seller_id mithilfe eines Left-Joins und eines NULL-Abgleichs identifiziert. Diese Unterabfrage kann dann in Verbindung mit Eloquent verwendet werden, um die gewünschten Daten abzurufen.

In SQL würde die Abfrage so aussehen:

<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
Nach dem Login kopieren

Übersetzt in Laravel Eloquent würde die Abfrage lauten geschrieben wie folgt:

<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(DB::raw('s.created_at < s1.created_at'));
   })
  ->whereNull('s1.seller_id')
  ->get();</code>
Nach dem Login kopieren

Diese Abfrage ruft mithilfe der Unterabfrage die neueste Snapshot-Zeile für jede eindeutige seller_id ab und stellt so sicher, dass die zurückgegebenen Ergebnisse die aktuellsten Informationen für jeden Verkäufer darstellen.

Das obige ist der detaillierte Inhalt vonWie rufe ich mit Laravel Eloquent den neuesten Snapshot für jeden Verkäufer ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage