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.
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