Có rất nhiều lựa chọn thay thế để giải quyết này, một trong đó tôi khuyên bạn nên là đã tham gia một subquery đó riêng được mới nhất ID
(giả định rằng các cột là AUTO_INCREMENT
ed) cho mỗi store_ID
.
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT store_ID, MAX(ID) max_ID
FROM tableName
GROUP BY store_ID
) b ON a.store_ID = b.store_ID AND
a.ID = b.max_ID
cho hiệu suất tốt hơn, hãy chắc chắn để có một chỉ mục trên các cột: ID
và store_id
.
UPDATE 1
nếu bạn muốn có giới hạn cho mỗi hồ sơ, sử dụng dưới đây,
SELECT ID, product_Name, store_ID
FROM tableName a
WHERE
(
SELECT COUNT(*)
FROM tableName b
WHERE b.store_ID = a.store_ID AND b.ID >= a.ID
) <= 2;
Nguồn
2013-01-17 08:45:01
Vui lòng đăng cấu trúc bảng và đầu ra của câu lệnh giải thích như là một phần của câu hỏi để chúng tôi có thể thấy TẠI SAO truy vấn quá chậm. Đảm bảo bao gồm các chỉ mục trong định nghĩa bảng. – Namphibian
đề cập đến tên bảng của bạn trong truy vấn "từ sản phẩm" –