Heim > Datenbank > MySQL-Tutorial > Wie kann man mit Laravel Eloquent effizient die neueste Transaktion für jeden Verkäufer auswählen?

Wie kann man mit Laravel Eloquent effizient die neueste Transaktion für jeden Verkäufer auswählen?

Linda Hamilton
Freigeben: 2024-12-01 20:36:11
Original
329 Leute haben es durchsucht

How to Efficiently Select the Latest Transaction for Each Seller Using Laravel Eloquent?

Laravel Eloquent: Alle neuesten Zeilen für jede Verkäufer-ID auswählen

Stellen Sie sich eine Tabelle vor, die Transaktionen enthält Datensätze:

  • id
  • seller_id
  • amount
  • created_at

Das Ziel besteht darin, die letzte Transaktion abzurufen für jede eindeutige seller_id. Während es einfach ist, die letzte Transaktion für einen bestimmten Verkäufer zu erhalten, besteht die Herausforderung darin, die neuesten Datensätze für alle Verkäufer zu extrahieren.

Datenbankabfrageansatz:

Ein effizienter Die Methode besteht darin, eine SQL-Abfrage zu verwenden:

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

Diese Abfrage identifiziert die letzte Transaktion für jede seller_id, indem sie einen Self-Join verwendet und Ausschließen von Datensätzen mit einem später erstellten_at-Zeitpunkt.

Laravel Query Builder-Ansatz:

Um das gleiche Ergebnis mit Laravel Query Builder zu erzielen:

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

Dieser Code verwendet eine ähnliche Self-Join-Technik wie die SQL-Abfrage und gibt die letzte Transaktion für jede Verkäufer-ID zurück.

Das obige ist der detaillierte Inhalt vonWie kann man mit Laravel Eloquent effizient die neueste Transaktion für jeden Verkäufer auswählen?. 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