Nano Hash - криптовалюты, майнинг, программирование

Вставьте в таблицу MYSQL дату последней отправки для обзора

У меня есть таблица под названием «рейтинги», которая содержит индекс, который представляет собой уникальное возрастающее число, 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 может появиться несколько раз в этой таблице секунд с разными датами.

Это должно быть единой модификацией первой таблицы. Когда это будет сделано, я изменю сценарий, который добавляет данные в таблицу рейтингов, чтобы всегда добавлять отметку времени в будущем при ее обновлении.

24.05.2013

Ответы:


1

Вы можете получить самые последние даты для каждого «ProductId», используя приведенный ниже запрос:

Select ProductId, MAX(lastSubDate)
From last_rate_date
Group By ProductId

Это создаст каждый ProductId, который появляется во второй таблице, вместе с последней датой (с использованием функции MAX). Предложение Group By необходимо для определения того, с чем выполняется агрегация.

Чтобы еще больше решить вашу проблему, вы можете вставить этот оператор Select в оператор Update следующим образом:

UPDATE ratings a
INNER JOIN (
    Select ProductId, MAX(lastSubDate) as finalLastSubDate
    From last_rate_date
    Group By ProductId ) b
ON a.ProductId = b.ProductId
SET a.lastSubDate = b.finalLastSubDate
24.05.2013
  • Большое спасибо за это, это действительно помогает :) 24.05.2013

  • 2

    Вы можете использовать метку времени с CURRENT_TIMESTAMP по умолчанию или добавить дату во вставку.

    $date = date ("m-Y-d, H: i: s")
    
    24.05.2013
  • Я не думаю, что вы поняли мой вопрос или, возможно, мне нужно уточнить. У меня есть все данные, которые мне нужны, во второй таблице MySQL, и мне нужно изменить первую, используя данные из второй, как разовую модификацию таблицы. Затем я, конечно, изменю сценарий, который поддерживает таблицу, чтобы с этого момента всегда вставлялся штамп времени для любых будущих добавленных записей. 24.05.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..