1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MySQL 中 delete where in 语句的子查询限制

MySQL 中 delete where in 语句的子查询限制

时间:2021-12-03 23:27:55

相关推荐

MySQL 中 delete where in 语句的子查询限制

根据ID删除数据,代码如下:

DELETEFROMt_swcas_db_sync_send_taskWHEREid IN (SELECTb.id AS idFROMt_swcas_db_old_part_back aINNER JOIN t_swcas_db_sync_send_task b ON a.ID = b.REF_IDWHEREWARRANTY_PARTS_STATUS = '已收货')

执行异常信息

[Err] 1093 - You can’t specify target table ‘t_swcas_db_sync_send_task’ for update in FROM clause

#SQL调整

DELETEFROMt_swcas_db_sync_send_taskWHEREid IN (SELECTidFROM(SELECTb.id AS idFROMt_swcas_db_old_part_back aINNER JOIN t_swcas_db_sync_send_task b ON a.ID = b.REF_IDWHEREWARRANTY_PARTS_STATUS = '已收货') AS n)

执行成功

原因分析

in 条件里的查询结果需要 重命名才能语法通过。

再试一下查询

select * FROMt_swcas_db_sync_send_taskWHEREid IN (SELECTb.id AS idFROMt_swcas_db_old_part_back aINNER JOIN t_swcas_db_sync_send_task b ON a.ID = b.REF_IDWHEREWARRANTY_PARTS_STATUS = '已收货')

没问题,不知道删除为什么要限制,查询不限制。。不纠结,记录下这个坑。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。