delete from t_association_member where id in
(
select id from (select * from t_association_member where (id_number,certificate_type,association_id) in
(
select id_number,certificate_type,association_id from t_association_member GROUP BY id_number,certificate_type,association_id HAVING count(*)>1
)
and id not in(select min(id) from t_association_member GROUP BY id_number,certificate_type,association_id HAVING count(*)>1)
)a
)

 

中间在包一层select id from ()a,主要是为了防止

 You can't specify target table 't_association_member' for update in FROM clause报错