Những gì bạn đang cố gắng đạt được được gọi là tối đa theo nhóm
, không thể đạt được điều này bằng cách sử dụng ORDER BY
. Thay vào đó, người ta phải tìm MAX()
và sau đó nối kết quả trở lại bảng:
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
Xem nó trên sqlfiddle .