Lo que intenta lograr se conoce como máximo por grupo
, que no se puede lograr usando ORDER BY
. En su lugar, uno debe encontrar el MAX()
y luego vuelva a unir el resultado a la tabla:
SELECT prd_data.* FROM prd_data NATURAL JOIN (
SELECT sub_prd_id, MAX(created_at) created_at
FROM prd_data
GROUP BY sub_prd_id
) t
Véalo en sqlfiddle .