Consulta elocuente para seleccionar las últimas filas agrupadas por vendedor
Dada una tabla que consta de información relacionada con el vendedor, incluidas las marcas de tiempo creadas_en, a menudo es necesario recuperar sólo las entradas más recientes de cada vendedor. Esta tarea se puede realizar de manera efectiva usando Laravel Eloquent.
Para lograr esto, podemos emplear una subconsulta MySQL que identifique la última fila para cada seller_id usando una combinación izquierda y una coincidencia NULL. Esta subconsulta luego se puede usar junto con Eloquent para recuperar los datos deseados.
En SQL, la consulta se vería así:
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at Traducido a Laravel Eloquent, la consulta se escribiría de la siguiente manera:
DB::table('snapshot as s')
->select('s.*')
->leftJoin('snapshot as s1', function ($join) {
$join->on('s.seller_id', '=', 's1.seller_id')
->whereRaw(DB::raw('s.created_at whereNull('s1.seller_id')
->get();
Esta consulta recupera la última fila instantánea para cada seller_id único usando la subconsulta, asegurando que los resultados devueltos representen la información más actualizada para cada vendedor.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3