我在TABLE
vendor_product 中有一个 col (state_not_allowed),我试图从 product_catalog_varchar.value 插入值 - 但前提是 vendor_product 中的 sku 与 product_catalog 中的 sku 匹配,其中 product_catalog 的 id 等于 product_catalog_varchar 的 id 和 product_catalog_varchar 的属性 id = 523 .
我基本上是在尝试做相当于 Excel VLOOPUP 的 MySQL。我需要以下查询的结果:
SELECT product_catalog_varchar.value
FROM product_catalog_varchar
JOIN product_catalog
ON product_catalog.id = product_catalog_varchar.id
JOIN vendor_product
ON vendor_product.sku = product_catalog.sku
AND product_catalog_varchar.attribute_id = 523
要插入到 state_not_allowed 列,其中 vendor_product 中的 sku = product_catalog 中的 sku。
INSERT INTO
我已经对, here 和 Google进行了一些研究。看起来很多指令都是关于更简单的查询,所以我无法找到一个像样的模型来弄清楚该怎么做。我可以告诉你,这个查询不起作用:
INSERT INTO vendor_product(`state_not_allowed`)
SELECT product_catalog_varchar.value
FROM product_catalog_varchar
JOIN product_catalog
ON product_catalog.id = product_catalog_varchar.id
JOIN vendor_product
ON vendor_product.sku = product_catalog.sku
AND product_catalog_varchar.attribute_id = 523
它会抛出以下错误:#1062 - Duplicate entry '' for key 2
如果我到 vendor_product 并查看,而不是简单地将值插入 state_not_allowed,它会创建一个全新的行(没有数据)。显然,我在这里从根本上误解了。帮帮我?谢谢各位。