@ASlr

Какой последовательностью команд MySQL можно решить задачу?

Прошу помочь. Необходимо регулярно (раз в сутки) выполнять в базе MySQL 5.7 следующую задачу:

Из таблички catalog_product_entity_varchar выбрать столбцы value, store_id и entity_id если в столбце attribute_id значение 138. Потом из таблицы directory_currency_rate взять значение rate если currency_from равно RUB и currency_to равно EUR (одно значение, не столбец). Дальше умножаем все value из первой выборки на значение rate и записываем их в таблицу catalog_product_entity_decimal в столбец value, если совпадает значение из столбца store_id и entity_id со значениями этих же столбцов из первой таблицы.

P.S. В исходной табличке catalog_product_entity_varchar строк с таким значением атрибута 138 может быть несколько сотен, если это имеет значение...
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
GogElf
@GogElf
Хокаге
Попробуй это
UPDATE catalog_product_entity_decimal cd
    JOIN (SELECT cp.store_id, cp.entity_id, cp.value, cp.value * cr.rate as value_rate
    FROM catalog_product_entity_varchar cp
        JOIN directory_currency_rate cr ON cr.currency_from = 'RUB' AND cr.currency_to = 'EUR'
    WHERE cp.attribute_id = 138) j ON cd.store_id = j.store_id AND cd.entity_id = j.entity_id
SET cd.value = j.value_rate;

Проверь на тестовой базе или данных
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы