我有一个有两列的csv,col1是条形码,col2是库存数量。
我有三张桌子。Table1:product_option_value字段: product_option_value_id、product_option_id、product_id、option_id、option_value_id、quantity、subtract、price、price_prefix、points、points_prefix、weight、weight_prefix
Table2: product_option_newvalue字段: product_id、product_option_value_id、sku、upc
我正在尝试使用我的CSV文件中的sku和QUANTITY来更新product_option_value表的quantity字段,遇到问题的部分是我必须使用product_option_newvalue表中的product_option_value_id来更新product_option_value中的QUANTITY字段,我该如何在这两者之间进行引用呢?
这就是我所拥有的。它不工作。
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;"发布于 2019-03-22 10:52:18
我推荐使用MySQL Workbench。它不是最好的,但它确实使这样的情况更容易管理。
设置完成后,您可以右键单击表并选择table data import wizard,然后手动添加一个csv文件。
如果你遇到任何错误,请让我知道。
此外,如果你是在mac上,你可以简单地在终端中使用brew cask install mysqlworkbench。
https://stackoverflow.com/questions/55292072
复制相似问题