Mysql obtém o registro mais recente

Prefácio

Como obter o último registro de vários registros sob o mesmo sinalizador (sinalizador) na tabela Mysql? O objetivo aqui é ordenar por tempo desc primeiro, e o resultado da consulta como uma tabela pai e, em seguida, agrupar por sinalizador na tabela pai; é importante notar aqui que se ordenar por e agrupar por estão na mesma tabela de dimensão, agrupar por Deve ser colocado antes do pedido por.

Exemplo de SQL

  • Para tabelas de múltiplas dimensões
 select task.*
        from task_info task
        left join(
        select *
        from(
        select *
        from task_status 
        order by create_datetime desc) t
        group by t.task_id) status on task.id = status.task_id
        where
         locate(status.task_status, #{
    
    taskStatus}) > 0
        order by task.create_datetime, task.id desc
       
  • Para uma tabela de dimensão única
 select sub_talent_pool.*
        from (select * from pool
        where plan = #{
    
    plan}
        order by modify_time desc) sub_talent_pool
        group by sub_talent_pool.tree_structure_id, sub_talent_pool.into_pool_time
        order by sub_talent_pool.into_pool_time desc

Resumindo

De modo geral, o resultado cronológico reverso da subconsulta é usado como a tabela pai e a consulta externa é agrupada para obter o registro mais recente.

Acho que você gosta

Origin blog.csdn.net/zhangxing52077/article/details/109381759
Recomendado
Clasificación