Heim > Datenbank > MySQL-Tutorial > Wie erhalte ich mit Laravel Eloquent die aktuellste Zeile für jede Verkäufer-ID?

Wie erhalte ich mit Laravel Eloquent die aktuellste Zeile für jede Verkäufer-ID?

Linda Hamilton
Freigeben: 2024-11-29 08:47:09
Original
977 Leute haben es durchsucht

How to Get the Most Recent Row for Each Seller ID Using Laravel Eloquent?

So wählen Sie mit Laravel Eloquent die neueste Zeile für jede Seller_ID aus

Problem

Sie haben eine Tabelle, die Daten mit den Spalten „seller_id“ und „created_at“ enthält. Sie möchten nur die neuesten Zeilen für jede einzelne Verkäufer-ID abrufen.

Lösung

Mit dem Abfrage-Builder von Laravel Eloquent können Sie dies erreichen, indem Sie einen linken Join und eine whereNull-Bedingung verwenden. So geht's:

$subquery = DB::table('snapshot')
    ->where('seller_id', '=', 's1.seller_id')
    ->whereRaw('s.created_at < s1.created_at');

$query = DB::table('snapshot as s')
    ->select('s.*')
    ->leftJoinSub($subquery, 's1', function ($join) {
        $join->on('s.seller_id', '=', 's1.seller_id');
    })
    ->whereNull('s1.seller_id')
    ->get();
Nach dem Login kopieren

In dieser Abfrage:

  1. Die Unterabfrage identifiziert alle Zeilen in der Snapshot-Tabelle, die einen späteren Zeitstempel „created_at“ haben als die aktuelle Zeile.
  2. Der Left Join kombiniert die Haupttabelle(n) mit den Unterabfrageergebnissen (s1).
  3. Die whereNull Bedingung eliminiert Zeilen, in denen ein entsprechender Eintrag in der Unterabfrage vorhanden ist. Dadurch werden effektiv alle Zeilen außer der neuesten für jede Verkäufer-ID herausgefiltert.

Durch Ausführen dieser Abfrage erhalten Sie eine Sammlung der neuesten Zeilen für jede einzelne Verkäufer-ID in der Snapshot-Tabelle.

Das obige ist der detaillierte Inhalt vonWie erhalte ich mit Laravel Eloquent die aktuellste Zeile für jede Verkäufer-ID?. 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