Consulta eloquente para seleção de linhas mais recentes agrupadas por vendedor
Dada uma tabela que consiste em informações relacionadas ao vendedor, incluindo carimbos de data/horacreated_at, muitas vezes é necessário recupere apenas as entradas mais recentes de cada vendedor. Esta tarefa pode ser realizada de forma eficaz usando Laravel Eloquent.
Para conseguir isso, podemos empregar uma subconsulta MySQL que identifica a linha mais recente para cada seller_id usando uma junção esquerda e correspondência NULL. Esta subconsulta pode então ser usada em conjunto com o Eloquent para recuperar os dados desejados.
No SQL, a consulta ficaria assim:
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at Traduzido para Laravel Eloquent, a consulta seria escrita da seguinte forma:
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 a linha de instantâneo mais recente para cada seller_id exclusivo usando a subconsulta, garantindo que os resultados retornados representem as informações mais atualizadas para cada vendedor.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3