Laravel Eloquent : sélectionnez les lignes avec le maximum de 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 :
Utiliser une requête SQL brute
Une approche consiste à utiliser une requête SQL brute, qui pourrait être plus efficace dans certaines circonstances :
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at 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 :
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 whereNull('s1.seller_id')
->get();
Les deux méthodes renverront une collection d'objets représentant les dernières lignes pour chaque seller_id unique dans la table d'instantanés.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3