delete <tablename> from <tablename> a 
left join (
select message_id=min(message_id) from <tablename> 
  group by start_date,stop_date,station_tr,station_na,start_time,station_nad,end_time
) b on b.message_id=a.message_id
where b.message_id is null保留message_id最小的一条

解决方案 »

  1.   

    刚才没看清条件。修改如下:
    delete <tablename> from <tablename> a 
    left join (
    select message_id=min(message_id) from TA
      group by station_tr,station_na,station_nad
    ) b on b.message_id=a.message_id
    where b.message_id is null另外,好像结果不止3条。station_tr 有A166,不知是否手误。
      

  2.   

    影响不大,已修改为
    //delete info from info a 
    //left join (
    //select message_id=min(message_id) from info 
    //  group by station_tr,station_na,start_time,station_nad,end_time
    //) b on b.message_id=a.message_id
    //where b.message_id is null;
    记录确实是4条,呵呵!
    送分送分