2017-07-19 4 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の問題「エラーコード:あなたがFROM句に更新のためのターゲットテーブル 『製品』を指定することはできません1093」

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

このselect文は私に何を与えています私は、だから私はExcelに行くと(上記の連結リスト)で、連結更新製品セットのproduct_layout =「069」SKUを作成=「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-%'); 

product_layoutに更新する必要があります。

誰でも手助けできますか?

ありがとうございました!これは私の別の問題のためである付与

+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を選択してください(製品とは異なるmaster_skuを選択し、master_skuがnullまたはmaster_sku = ''))、SKUは 'IP-%'のようにスキップします。 – Boris

+0

このコードスニペットをありがとうございました。すぐに役立つかもしれません。適切な説明は、なぜ*これが問題の良い解決策であるかを示すことによってその教育上の価値を大幅に改善し(// meta.stackexchange.com/q/114762)、将来の同様の、しかし、同一ではない質問。説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

関連する問題