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.