Neueste Zeilen für jede Verkäufer-ID in Laravel Eloquent abrufen
Dieser Artikel befasst sich mit der Herausforderung, die neueste Zeile für jeden einzelnen Verkäufer in abzurufen eine Datenbanktabelle. Wir werden eine Lösung unter Verwendung des Laravel Eloquent ORM untersuchen, um dieses Ziel zu erreichen.
Die angegebene Tabelle enthält Daten für Verkäufe, einschließlich Verkäufer-IDs, Beträge und Erstellungszeitstempel. Um die neueste Zeile für einen bestimmten Verkäufer zu erhalten, kann die Abfrage wie folgt geschrieben werden:
<code class="php">$sales = Snapshot::where('seller_id', '=', 15) ->orderBy('created_at', 'DESC') ->first();</code>
Um diese Funktionalität zu erweitern, um die neuesten Zeilen für alle Verkäufer abzurufen, verwenden wir eine erweiterte Abfrage. Die folgende Abfrage verwendet eine Unterabfrage, um die neueste Zeile für jeden Verkäufer zu identifizieren:
<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
Um diese Abfrage im Abfrage-Builder von Laravel zu verwenden, kann der folgende Code implementiert werden:
<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>
Durch Mit dieser Lösung können Sie effizient die neueste Zeile für jeden Verkäufer in der Datenbanktabelle abrufen und so bequem auf die aktuellsten Daten für Ihre Anwendung zugreifen.
Das obige ist der detaillierte Inhalt vonWie rufe ich die neueste Zeile für jeden Verkäufer in Laravel Eloquent ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!