将子查询放在 WHERE 子句中并将其限制为 n.control _ number 意味着它将多次运行子查询。这就是所谓的 相关子查询,它通常是一个性能杀手。
最好在 FROM 子句中运行一次子查询,以获得每个控件号的最大日期。
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);