Maison > base de données > tutoriel mysql > Comment récupérer uniquement les dernières lignes pour chaque identifiant de vendeur unique à l'aide de Laravel Eloquent ?

Comment récupérer uniquement les dernières lignes pour chaque identifiant de vendeur unique à l'aide de Laravel Eloquent ?

Mary-Kate Olsen
Libérer: 2024-11-27 21:35:16
original
426 Les gens l'ont consulté

How to Retrieve Only the Latest Rows for Each Unique Seller ID using Laravel Eloquent?

Laravel Eloquent : récupérer toutes les lignes avec un maximum de 'created_at'

Dans Laravel, une exigence courante se pose lorsque vous devez récupérer uniquement la dernière lignes pour chaque valeur unique dans une colonne spécifique. Dans un tableau comme celui fourni, où chaque ligne représente une vente, vous souhaiterez peut-être obtenir la vente la plus récente pour chaque vendeur.

Pour y parvenir en utilisant Laravel Eloquent, une approche consiste à modifier la requête fournie dans la question :

$sales = Snapshot::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();
Copier après la connexion

Cette requête obtient le résultat souhaité en introduisant une jointure gauche à une copie de la table « instantané », alias « s1 ». La jointure est effectuée sur la base de la colonne « seller_id » et inclut une condition qui compare les valeurs «created_at» pour garantir que seules les dernières lignes de chaque vendeur sont sélectionnées.

La clause «whereNull» garantit que pour chaque vendeur, il n'y a pas de ligne suivante avec une valeur 'created_at' plus grande. Ceci identifie les lignes avec la valeur 'created_at' maximale pour chaque 'seller_id' unique. En appelant 'get()' sur la requête résultante, un tableau de toutes les dernières ventes regroupées par vendeur est obtenu.

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