Ce que vous essayez d'accomplir est connu sous le nom de maximum par groupe
, qui ne peut pas être réalisé en utilisant ORDER BY
. Au lieu de cela, il faut trouver le MAX()
puis rejoignez le résultat dans la table :
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
Voir sur sqlfiddle .