Đây là cách tôi giải quyết loại truy vấn "đầu N cho mỗi nhóm" này trong MySQL:
SELECT c1.*
FROM codes c1
LEFT OUTER JOIN codes c2
ON (c1.language_id = c2.language_id AND c1.time_posted < c2.time_posted)
GROUP BY c1.id
HAVING COUNT(*) < 5;
Xem thêm " Làm cách nào để chọn nhiều mục từ mỗi nhóm trong một truy vấn mysql? "