Mysql
 sql >> Database >  >> RDS >> Mysql

GRUPPO PER avendo la data MAX

Mettere la sottoquery nella clausola WHERE e limitarla a n.control_number significa che esegue la sottoquery molte volte. Questa è chiamata sottoquery correlata , e spesso è un killer di prestazioni.

È meglio eseguire la sottoquery una volta, nella clausola FROM, per ottenere la data massima per numero di controllo.

SELECT n.* 
FROM tblpm n 
INNER JOIN (
  SELECT control_number, MAX(date_updated) AS date_updated
  FROM tblpm GROUP BY control_number
) AS max USING (control_number, date_updated);