Wenn Sie die Unterabfrage in die WHERE-Klausel einfügen und sie auf n.control_number beschränken, bedeutet dies, dass die Unterabfrage viele Male ausgeführt wird. Dies wird als korrelierte Unterabfrage bezeichnet , und es ist oft ein Leistungskiller.
Es ist besser, die Unterabfrage einmal in der FROM-Klausel auszuführen, um das maximale Datum pro Kontrollnummer zu erhalten.
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);