Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-25 12:15:30
original
380 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal