To, čeho se snažíte dosáhnout, je známé jako skupinové maximum
, čehož nelze dosáhnout pomocí ORDER BY
. Místo toho je třeba najít MAX()
a poté připojte výsledek zpět do tabulky:
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
Podívejte se na to na sqlfiddle .