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:
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at Übersetzt in Laravel Eloquent würde die Abfrage wie folgt geschrieben werden:
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 whereNull('s1.seller_id')
->get();
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.
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