Giải pháp Carlos đã được đơn giản hóa và sửa chữa nhiều (giải pháp của anh ấy sẽ trả về 5 hàng đầu tiên, không phải hàng cuối cùng ...):
SELECT tB1.idA, tB1.idB, tB1.textB
FROM tableB as tB1
JOIN tableB as tB2
ON tB1.idA = tB2.idA AND tB1.idB <= tB2.idB
GROUP BY tB1.idA, tB1.idB
HAVING COUNT(*) <= 5
Trong MySQL, bạn có thể sử dụng tB1.textB
ngay cả khi nó được nhóm theo truy vấn, vì bạn đang nhóm theo idB trong bảng đầu tiên, vì vậy chỉ có một giá trị duy nhất của tB1.textB
cho mỗi nhóm ...