原sql:
DELETE FROM transport_sheet_extend WHERE transport_sheet_code IN (SELECT a.transport_sheet_code FROM transport_sheet_extend a.is_delete = 0 WHERE GROUP BY a.transport_sheet_code HAVING count(*)>1) ;
报错check the manual that corresponds to your MySQL server version for the right syntax to use near
修改后:
DELETE FROM transport_sheet WHERE CODE IN (SELECT b.`code` FROM (SELECT a.`code` FROM transport_sheet a WHERE a.yn = 0 GROUP BY a.`code` HAVING count(*)>1) b);
SQL的IN操作符,无法直接查询出表的数据后更新表,因此需要通过中间表查询一遍