我试图通过使用 product_stock 表中的相同值来更新 product_identifier 表中的 SKU 列。 我不能直接这样做。首先,我必须从 product_variant 获取变体ID ,然后使用variant_id从 product_stock 中找到 SKU 最后,使用变体的SKU更新product_identifier表中的SKU列
product_id = SELECT id FROM product
variant_id = SELECT id FROM product_variant WHERE product_id=product_id
sku = SELECT sku FROM product_stock WHERE variant_id=variant_id
UPDATE product_identifier SET sku='sku'
(对不起,我对SQL的了解很少。尝试通过辅助其值进行解释)
上面的代码摘要:
从PRODUCT表中获取产品ID
使用产品ID查找产品的变体ID
查找变体ID的SKU代码
然后使用产品ID更新product_identifier中的SKU值
- 表样本
产品 enter image description here
PRODUCT_VARIANT enter image description here
PRODUCT_STOCK enter image description here
- PS。一种产品可能有多种变体
答案 0 :(得分:0)
您可以在FROM
语句中使用UPDATE
子句。但是您需要弄清楚如何将product_identifier
与其他表进行匹配。在这一点上,您的问题尚不清楚:
UPDATE product_identifier pi
SET sku = ps.sku
FROM product p JOIN
product_variant pv
ON pv.product_id = p.id JOIN
product_stock ps
ON ps.variant_id = pv.id
WHERE pi.? = ?.?; -- your join condition goes here