Maison >base de données >tutoriel mysql >Comment obtenir la ligne la plus récente pour chaque identifiant de vendeur à l'aide de Laravel Eloquent ?
Vous avez une table qui contient des données avec les colonnes seller_id etcreated_at. Vous souhaitez récupérer uniquement les dernières lignes pour chaque seller_id distinct.
En utilisant le générateur de requêtes de Laravel Eloquent, vous pouvez y parvenir en utilisant une jointure gauche et une condition WhereNull. Voici comment :
$subquery = DB::table('snapshot') ->where('seller_id', '=', 's1.seller_id') ->whereRaw('s.created_at < s1.created_at'); $query = DB::table('snapshot as s') ->select('s.*') ->leftJoinSub($subquery, 's1', function ($join) { $join->on('s.seller_id', '=', 's1.seller_id'); }) ->whereNull('s1.seller_id') ->get();
Dans cette requête :
En exécutant cette requête, vous obtiendrez une collection des dernières lignes pour chaque seller_id distinct 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!