У меня есть csv с двумя столбцами, col1 - это штрих-код, col2 - количество на складе.
У меня есть 3 таблицы.
Таблица1: product_option_value
Поля: product_option_value_id, product_option_id, product_id, option_id, option_value_id, количество, вычитание, цена, префикс цены, баллы, точка префикса, вес, префикс веса
Таблица2: product_option_newvalue
Поля: product_id, product_option_value_id, sku, upc
Я пытаюсь обновить поле QUANTITY таблицы product_option_value, используя sku и количество в моем CSV-файле. У меня возникла проблема: мне нужно использовать product_option_value_id в product_option_newvalue для обновления поля QUANTITY в product_option_value, как бы я сослаться между ними?
Вот что у меня есть. Это не работает.
CREATE TABLE oc_product_import LIKE oc_product_option_value;
LOAD DATA INFILE '/var/lib/mysql-files/out.csv'
INTO TABLE oc_product_import
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
(sku, quantity);
UPDATE oc_product_option_value AS R
INNER JOIN oc_product_import AS P
ON R.product_option_value_id = P.product_option_value_id
SET R.quantity = P.sku;
DROP TABLE product_import;"
Редактировать: моя проблема в том, что штрих-код хранится только в product_option_newvalue и может быть привязан только к количеству путем ссылки на product_option_value_id в обеих таблицах. Чтобы обновить количество в таблице product_option_value.
EDIT2: это аналогичный код, который работает для меня. Но он не должен ссылаться на проблему PRODUCT_OPTION_VALUE_ID, с которой я работаю в двух таблицах, так как штрих-код включен в таблицу продуктов, а не в дополнительную таблицу по ссылке
DROP TABLE IF EXISTS oc_product_import;
CREATE TABLE oc_product_import LIKE oc_product
LOAD DATA INFILE '/var/lib/mysql-files/out.csv'
INTO TABLE oc_product_import
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY ';'
(sku, quantity);
UPDATE oc_product AS R
INNER JOIN oc_product_import AS P
ON R.sku = P.sku
SET R.quantity = P.quantity;
DROP TABLE oc_product_import;"