Я пытаюсь выяснить, как сделать запрос к моей базе данных, чтобы она по существу сначала ЗАКАЗЫВАЛА мои результаты, а затем группировала их ... Этот вопрос, кажется, немного распространен, и я нашел примеры, но я все еще не совсем понять, как это сделать, и использовать примеры в моей собственной ситуации ... Так что всякая помощь определенно приветствуется.
Вот мои таблицы MySQL:
книга
book_id
BOOK_TITLE
Пользователи
user_id
user_name
book_reviews
review_id
book_id
user_id
date_date (дата отметки времени unix)
Я хотел бы запросить 30 последних обзоров книг. Они будут просто отображаться как:
Название книги
Имя пользователя Рецензента
Однако я хотел бы показать каждую книгу не более одного раза. Таким образом, обзор, показанный в списке, должен быть последним добавленным отзывом. Чтобы сделать это, я просто сгруппировался по названию книги и упорядочил по дате обзора. Но при таком запросе запись с последней добавленной датой review_date не отображается как сгруппированная по строке, поэтому мои данные неверны.
Вот мой текущий запрос:
SELECT books.books_title, users.user_name, book_reviews.review_id FROM books, users, book_reviews WHERE book_reviews.book_id = books.book_id AND book_reviews.user_id = users.user_id GROUP BY book_title ORDER BY review_date DESC LIMIT 30
Из того, что я прочитал, похоже, что у меня должен быть подзапрос, в котором я получаю значение MAX (review_date), но я все еще не понимаю, как связать все это.
Спасибо за тонну.