SQL查询错误#1093 - 无法指定目标表“A”在FROM子句

问题描述:

在我的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

执行如下所示的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