Det, du forsøger at opnå, er kendt som en gruppevis maksimum
, hvilket ikke kan opnås ved at bruge ORDER BY
. I stedet skal man finde MAX()
og sæt derefter resultatet tilbage til 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 .