使用';在重复密钥更新时';在MySQL中使用内部连接

使用';在重复密钥更新时';在MySQL中使用内部连接,mysql,Mysql,当我收到错误时,我正在努力运行insert查询 #1062 - Duplicate entry '1-13951' for key 'virtuemart_product_id' 我已经读过关于在重复密钥更新中使用的内容,但是作为一个新手,我不确定如何将其准确地应用到我的查询中,或者这是否是实现插入的最佳方法?这是我的疑问: INSERT INTO jos_virtuemart_product_medias (`virtuemart_media_id`, `virtuemart_product

当我收到错误时,我正在努力运行insert查询

#1062 - Duplicate entry '1-13951' for key 'virtuemart_product_id'
我已经读过关于在重复密钥更新中使用的内容,但是作为一个新手,我不确定如何将其准确地应用到我的查询中,或者这是否是实现插入的最佳方法?这是我的疑问:

INSERT INTO jos_virtuemart_product_medias (`virtuemart_media_id`, `virtuemart_product_id`)
SELECT `virtuemart_media_id`, `virtuemart_product_id` 
FROM `jos_virtuemart_medias` 
INNER JOIN `jos_virtuemart_products` ON SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(`jos_virtuemart_medias`.`file_url`, '/', -1), ".", 1),"-",1) = `jos_virtuemart_products`.`product_sku` WHERE 1

任何建议都将不胜感激。

您的
加入条件太复杂了。我认为您的数据结构有一个更基本的问题。(您应该了解连接表。)您应该始终对索引字段进行
连接。如果你继续这样做,它会先变慢,然后死锁。关于您的问题,请尝试插入到。。。(在重复密钥更新字段中选择…)=newvalue