mysql自连接实现删除问题

现有如下需求

               如图所示:对于同一code-color字段分组下得数据,如果date2等于date1,那么就删除这两条数据,如果有连续得三条这种数据就删除连续得三条。

               具体实现思路,先采用自连接处理,这样会有满足条件得数据的id字段,这两条数据的id自连接后分别处于一条数据的两个不同字段中,在对这两个字段用union进行求并集(去重),最后通过ID进行删除。

               sql如下:

               DELETE from taopai WHERE id in (SELECT t1.id1 id FROM (SELECT t1.id id1,t2.id id2 from taopai t1,taopai t2 WHERE t1.`code-color`=t2.`code-color` and t2.date2=t1.date1) t1 UNION SELECT t2.id2 id from (SELECT t1.id id1,t2.id id2 from taopai t1,taopai t2 WHERE t1.`code-color`=t2.`code-color` and t2.date2=t1.date1) t2);

猜你喜欢

转载自blog.csdn.net/qq_34295546/article/details/83114182