Maison  >  Article  >  développement back-end  >  Comment sélectionner des lignes avec le maximum de « created_at » pour chaque « seller_id » unique dans Laravel Eloquent ?

Comment sélectionner des lignes avec le maximum de « created_at » pour chaque « seller_id » unique dans Laravel Eloquent ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 12:15:30285parcourir

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

Laravel Eloquent : sélectionnez les lignes avec le maximum Created_at

Dans Laravel Eloquent, vous pouvez rencontrer des scénarios dans lesquels vous devez sélectionner toutes les lignes avec le maximum valeur create_at pour chaque seller_id unique dans une table. Voici comment y parvenir :

Utilisation d'une requête SQL brute

Une approche consiste à utiliser une requête SQL brute, qui pourrait être plus efficace dans certaines circonstances :

<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

Utilisation du générateur de requêtes

Vous pouvez également utiliser le générateur de requêtes de Laravel pour une approche plus orientée objet :

<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('s.created_at < s1.created_at');
   })
  ->whereNull('s1.seller_id')
  ->get();</code>

Les deux méthodes renvoie une collection d'objets représentant les dernières lignes pour chaque seller_id unique dans la table d'instantanés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn