Sử dụng:
SELECT x.book_title,
x.user_name
FROM (SELECT b.book_title,
u.user_name,
br.review_date,
CASE
WHEN @book = b.book_title THEN @rownum := @rownum + 1
ELSE @rownum := 1
END AS rank,
@book := b.book_title
FROM BOOKS b
JOIN BOOK_REVIEWS br ON br.book_id = b.book_id
JOIN USERS u ON u.user_id = br.user_id
JOIN (SELECT @rownum := 0, @book := '') r
ORDER BY b.book_title, br.review_date DESC) x
WHERE x.rank = 1
ORDER BY x.review_date DESC
LIMIT 30
MySQL không có chức năng phân tích / xếp hạng / cửa sổ, nhưng điều này xếp hạng các bài đánh giá trong đó bài đánh giá mới nhất được đánh dấu là 1. Điều này dựa trên cơ sở mỗi cuốn sách ...
Tôi đã xác định ngày đánh giá để đặt hàng muộn nhất trong số đó là những cuốn sách mới nhất ...