Mysql obtiene el último récord

Prefacio

¿Cómo obtener el último registro de varios registros bajo la misma bandera (bandera) en la tabla Mysql? El propósito aquí es ordenar por tiempo desc primero, y el resultado de su consulta como una tabla principal, y luego agrupar por bandera en la tabla principal; vale la pena señalar aquí que si el orden por y el grupo por están en la misma tabla de dimensiones, agrupe por Debe colocarse antes de realizar el pedido.

Ejemplo de SQL

  • Para tablas de varias dimensiones
 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 una tabla de una sola dimensión
 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

para resumir

Con todo, el resultado cronológico inverso de la subconsulta se utiliza como tabla principal y la consulta externa se agrupa para obtener el último registro.

Supongo que te gusta

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