2015-09-07 71 views
-1

在我的WordPress DB我執行一個版本更加簡化查詢更新時間:SQL查詢錯誤#1093 - 無法指定目標表「A」在FROM子句

UPDATE wp_postmeta a 
    SET a.meta_value = 'roses' 
    WHERE a.meta_key = 'flowers' AND 
      EXISTS (SELECT * 
        FROM wp_postmeta b 
        WHERE a.post_id = b.post_id AND 
          b.meta_key = 'month' AND 
          b.meta_value = 'august') 

我不斷收到以下錯誤:

#1093 - You can't specify target table 'a' for update in FROM clause 

我在處理DB查詢以瞭解如何修復查詢方面經驗有限。

任何幫助將不勝感激。

更新#1:答案由@Rahul在下面提供。

+2

標籤正確**的MySQL!=的Microsoft SQL Server ** – lad2025

+1

拿出更多的別名,離開了''出'from'塊 – Drew

回答

1

執行如下所示的UPDATE JOIN。用同一張表做SELF JOIN

UPDATE wp_postmeta a 
JOIN wp_postmeta b ON a.post_id = b.post_id AND 
         b.meta_key = 'month' AND 
         b.meta_value = 'august' 
SET a.meta_value = 'roses' 
WHERE a.meta_key = 'flowers'; 
+0

拉胡爾式的,謝謝!你的回答對我來說非常合適。 – Jorge

相關問題