Det du försöker åstadkomma är känt som en gruppvis maximalt
, vilket inte kan uppnås med ORDER BY
. Istället måste man hitta MAX()
och sätt sedan resultatet tillbaka till tabellen:
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
Se den på sqlfiddle .