2017-07-19 29 views
0
UPDATE product 
SET product_layout='068' 
WHERE (sku IN (SELECT DISTINCT master_sku FROM product)) 
    AND (master_sku IS NOT NULL AND master_sku !='') 
    AND sku LIKE 'IP-283-%'; 

它给我这个错误:MySQL的问题“错误代码:1093您不能指定目标表‘产品’在FROM子句更新”

Error Code: 1093. You can't specify target table 'product' for update in FROM clause

这个SELECT语句是给我什么我需要更新到product_layout = '069'

SELECT id, sku, master_sku 
FROM product 
WHERE (sku NOT IN (SELECT DISTINCT master_sku FROM product)) 
    AND (master_sku IS NULL OR master_sku = '' AND sku LIKE 'IP-%'); 

SO我去到Excel并创建一个CONCAT更新产品设置product_layout = '069',其中SKU中(上述CONCAT清单);

任何人都可以帮忙吗?

谢谢!

+0

https://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-update-in-from-clause –

回答

0
UPDATE product AS p, 
(
    SELECT p.sku 
    FROM product AS p 
    WHERE (sku not in (select distinct master_sku from product) and (master_sku is null or master_sku ='')) and sku like 'IP-%') AS newp 
    set product_layout='069' 
    WHERE p.sku=newp.sku 
+0

授予这是我的另一个问题...我只能使用它,但不知道如何进行更新声明。 ---从产品中选择sku(sku不在(从产品中选择不同的master_sku)和(master_sku为null或master_sku =''))和sku(如'IP-%'); – Boris

+0

感谢您使用此代码段,它可能会提供一些即时帮助。通过展示*为什么*这是一个很好的解决方案,对未来的读者会有更好的解决方案,这将为它的教育价值提供一个合适的解释[//大大提高](// meta.stackexchange.com/q/114762)但不完全相同的问题。请编辑您的答案以添加解释,并指出适用的限制和假设。 –

相关问题