У меня есть таблица под названием «рейтинги», которая содержит индекс, который представляет собой уникальное возрастающее число, ProductId, который является кодом продукта, от rate1 до rate5 — это количество раз, когда каждый продукт получил оценку 1 или 5 звезд от клиента. средний рейтинг для каждого продукта и lastSubDate должны быть отметкой времени, когда был отправлен последний отзыв для каждого продукта, но в настоящее время он пуст.
id ProductId rate1 rate2 rate3 rate4 rate5 aveRate lastSubDate
18 9996637 0 0 0 0 1 5 0000-00-00 00:00:00
26 9996628 1 0 0 0 0 1 0000-00-00 00:00:00
34 9996618 0 0 0 1 0 4 0000-00-00 00:00:00
36 9996614 5 0 0 0 0 1 0000-00-00 00:00:00
48 9996592 5 0 1 0 3 3 0000-00-00 00:00:00
66 9996566 0 0 0 1 3 5 0000-00-00 00:00:00
В другой таблице, которую я назвал «last_rate_date», у меня есть ProductId и дата, когда продукт был в последний раз оценен под lastSubDate. В этой таблице идентификатор продукта может появляться несколько раз, как в примере, поскольку каждая строка представляет время, когда отзыв был отправлен покупателем.
ProductId lastSubDate
9996665 2009-05-22 19:45:05
9996665 2009-08-06 11:30:07
9996665 2010-11-10 08:30:17
9996665 2011-06-10 09:15:47
9996665 2011-06-12 05:15:39
Мои вопросы заключаются в том, как я могу изменить «рейтинги» первой таблицы с помощью SQL, чтобы вставить время последнего просмотра продукта в «lastSubDate», используя вторую таблицу «last_rate_date» для поиска productId и даты, учитывая, что каждый ProductId может появиться несколько раз в этой таблице секунд с разными датами.
Это должно быть единой модификацией первой таблицы. Когда это будет сделано, я изменю сценарий, который добавляет данные в таблицу рейтингов, чтобы всегда добавлять отметку времени в будущем при ее обновлении.