在MySQL数据库中,我的表格标有以下内容:
Table:catalog_product_entity
|-------------------------|
|entity_id | sku |
|-------------------------|
|5 | 094922562333 |
|6 | 087454664234 |
|7 | 054545789548 |
---------------------------
Table:catalog_product_entity_decimal
|-------------------------|
|entity_id | price |
|-------------------------|
|5 | 39.99 |
|6 | 37.92 |
|7 | 5.99 |
---------------------------
Table: cataloginventory_stock_item
|-------------------------|
|entity_id | qty |
|-------------------------|
|5 | 0 |
|6 | 5 |
|7 | 8 |
---------------------------
我正在连接另一个只能提供SKU的数据库。我想使用SKU作为INNER JOIN来使用entity_id通过一个查询来更新表。
这是我到目前为止的查询(获取语法错误):
UPDATE catalog_product_entity_decimal, cataloginventory_stock_item
SET catalog_product_entity_decimal.value ='37.95',
cataloginventory_stock_item.qty ='4'
INNER JOIN catalog_product_entity
ON catalog_product_entity.entity_id = catalog_product_entity_decimal.entity_id
WHERE catalog_product_entity.sku = '094922562333';
答案 0 :(得分:2)
JOIN
是UPDATE
声明的一部分,而不是SET
之后的部分。所以你可以试试:
UPDATE catalog_product_entity_decimal cped JOIN
catalog_product_entity cpe
ON cpe.entity_id = cped.entity_id JOIN
cataloginventory_stock_item csi
ON csi.entity_id = cpe.entity_id
SET cped.value = 37.95,
csi.qty = 4
WHERE cpe.sku = '094922562333';
注意:
JOIN
符号位于UPDATE
子句中。JOIN
需要cataloginventory_stock_item
。