根据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 = '已收货')
没问题,不知道删除为什么要限制,查询不限制。。不纠结,记录下这个坑。。。