„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 06.11.2024
Durchsuche:190

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

Laravel Eloquent: Wählen Sie Zeilen mit dem Maximum Created_at aus

In Laravel Eloquent können Sie auf Szenarien stoßen, in denen 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 Roh-SQL-Abfrage

Ein Ansatz besteht darin, eine Roh-SQL-Abfrage zu verwenden, die unter bestimmten Umständen effizienter sein könnte:

select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at 

Verwenden des Abfrage-Builders

Alternativ können Sie den Abfrage-Builder von Laravel für einen objektorientierteren Ansatz verwenden:

 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 whereNull('s1.seller_id')
  ->get();

Beide Methoden geben eine Sammlung von Objekten zurück, die die neuesten Zeilen für jede eindeutige seller_id in der Snapshot-Tabelle darstellen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3