Maison >base de données >tutoriel mysql >Comment sélectionner la dernière vente pour chaque vendeur dans Laravel Eloquent ?

Comment sélectionner la dernière vente pour chaque vendeur dans Laravel Eloquent ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 06:02:13974parcourir

How to Select the Latest Sale for Each Seller in Laravel Eloquent?

Sélection de toutes les lignes avec une valeur créée_at maximale pour chaque vendeur_id dans Laravel Eloquent

Votre tableau contient une liste de transactions de vente avec des colonnes comprenant l'identifiant, seller_id, montant et create_at. Pour récupérer la ligne la plus récente pour chaque seller_id unique, vous pouvez utiliser les techniques suivantes :

À l'aide d'une requête SQL

Pour exécuter directement une requête SQL personnalisée, vous pouvez utilisez la façade DB dans Laravel :

$latestSales = DB::select(DB::raw('
    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 d'une requête éloquente Builder

Vous pouvez également utiliser le générateur de requêtes de Laravel pour obtenir le même résultat :

$latestSales = 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();

Les deux techniques récupéreront toutes les lignes avec des valeurs create_at maximales pour toutes les valeurs seller_id uniques dans votre table.

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