加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 错误#1093 – 您无法在FROM子句中为更新指定目标表’

发布时间:2020-12-11 23:36:50 所属栏目:MySql教程 来源:网络整理
导读:我正在升级和优化旧的表结构. 为了正确使用替换,我删除了干扰2列新唯一密钥的旧僵尸条目. 查询: DELETE from `relProductsPrices` where `ID` in (SELECT scanA.ID from `relProductsPrices` as scanA inner join `relProductsPrices` as scanB where scanA

我正在升级和优化旧的表结构.
为了正确使用替换,我删除了干扰2列新唯一密钥的旧僵尸条目.

查询:

 DELETE from `relProductsPrices` where `ID` in 

  (SELECT scanA.ID from `relProductsPrices` as scanA 
             inner join `relProductsPrices` as scanB 

   where scanA.ID        < scanB.ID 
     and scanA.product   = scanB.product
     and scanA.priceName = scanB.priceName);

错误:

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

我不确定如何正确地将它放入一个mySQL查询中?

我希望这个问题没有重复的条目,我似乎无法找到类似的,适应性的条目.有关于此错误的问题,但我在这里根本没有更新查询,大多数人所说的解决方案(创建一个子选择)已经事先由我完成了.

提前致谢!

最佳答案 试试这个:

DELETE FROM `relProductsPrices` 
WHERE `ID` IN ( 
     SELECT 
       tmp.ID 
     FROM (
       SELECT 
         scanA.ID 
       FROM 
         `relProductsPrices` as scanA 
       INNER JOIN `relProductsPrices` as scanB 
         ON scanA.ID        < scanB.ID 
         AND scanA.product   = scanB.product
         AND scanA.priceName = scanB.priceName
     ) as tmp
 );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读