Mysql更新select出来的值
博客专区 > liujiest 的博客 > 博客详情
Mysql更新select出来的值
liujiest 发表于1年前
Mysql更新select出来的值
  • 发表于 1年前
  • 阅读 6
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 报错:You can't specify target table 'xxx' for update in FROM clause。解决方案:中间表

由于数据库设计不合理(一张原表,一张更新记录表,偷懒直接复制的,忘了关联id),等发现的时候想写条SQL语句补救一下,结果报错了。

网上的例子

delete from tbl where id in 
(
        select max(id) from tbl a where EXISTS
        (
            select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
)

改:

delete from tbl where id in 
(
    select a.id from 
    (
        select max(id) id from tbl a where EXISTS
        (
            select 1 from tbl b where a.tac=b.tac group by tac HAVING count(1)>1
        )
        group by tac
    ) a
)

共有 人打赏支持
粉丝 7
博文 64
码字总数 26587
×
liujiest
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: