原因是子查询语句中包含有本身的表
delete FROM baosis.opm_object_detail WHERE guid in
(select a.GUID from baosis.opm_object_detail a,baosis.opm_month_time b where a.MTGUID=b.MTGUID and OGUID ='59bfb307-da64-44a4-9b87-7d0585dcdd19'
AND b.MTYEAR = '2019')
这个语句执行会报错原因是我子查询里面也有了 baosis.opm_object_detail 表
所以我们需要在它外面加个别名就ok了
delete FROM baosis.opm_object_detail WHERE guid in
(select c.guid from (select a.GUID from baosis.opm_object_detail a,baosis.opm_month_time b where a.MTGUID=b.MTGUID and OGUID ='59bfb307-da64-44a4-9b87-7d0585dcdd19'
AND b.MTYEAR = '2019') as c)
用 = 号带子查询的删除也是类似