mysql - INNER JOIN 3 表与参考 INFILE
问题描述
我有一个两列的 csv,col1 是条形码,col2 是库存数量。
我有 3 张桌子。表 1:product_option_value 字段:product_option_value_id、product_option_id、product_id、option_id、option_value_id、数量、减法、价格、price_prefix、points、points_prefix、weight、weight_prefix
表 2:product_option_newvalue 字段:product_id、product_option_value_id、sku、upc
我正在尝试使用 CSV 文件中的 sku 和数量更新表 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;"
解决方案
我会推荐使用MySQL Workbench。它不是最好的,但它确实使此类情况更易于管理。
设置完成后,您可以右键单击表格并table data import wizard
以这种方式选择并手动添加 csv 文件。
如果您对此有任何错误,请告诉我。
此外,如果你在 mac 上,你可以简单地brew cask install mysqlworkbench
在终端中。
推荐阅读
- python - 使用某些 nan 处理进行 xarray 重采样
- c# - 按年龄范围计算出生日期
- node.js - 辅助函数的返回值未被等待
- java - 从 SCROLL_TAB_LAYOUT JTabbedPane 中删除选项卡后,将剩余的选项卡滚动到可见
- html - div滚动,与父级
- visual-studio-code - VS Code:如何为 .cpp 文件而不是 .h 启用格式保存?
- angular - UI 组件未根据数据更改进行相应更新
- elasticsearch - 嵌套关键字字段上的 Elasticsearch 范围查询
- react-native - react-native 中是否有任何新的良好导航资源?
- visual-studio-2017 - TFS 2018 构建定义在团队资源管理器面板下的 vs2017 中不可见