"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo obtener la última instantánea de cada vendedor utilizando Laravel Eloquent?

¿Cómo obtener la última instantánea de cada vendedor utilizando Laravel Eloquent?

Publicado el 2024-11-09
Navegar:806

How to Fetch the Latest Snapshot for Each Seller Using Laravel Eloquent?

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.

Último tutorial Más>

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