MySQL:当其他人拥有相同数据时选择一条记录

时间:2009-07-08 16:22:47

标签: mysql

我有一张所有共享相同区号的城市表:

367 01451   Harvard         Worcester   Massachusetts   MA  978 Eastern
368 01452   Hubbardston Worcester   Massachusetts   MA  978 Eastern
369 01453   Leominster  Worcester   Massachusetts   MA  978 Eastern

该表有多个区号,所有区号都有多个城市。

我想做的只是从每个区号中选择一个城市,并从重复的区号中删除任何额外的城市。什么是最好的查询来完成这个?

我相信: Mysql4: SQL for selecting one or zero record

接近我需要的但却没有得到那些答案的工作原理。

注意“978”行是“area_code”行,表名是“zip_code”。

1 个答案:

答案 0 :(得分:1)

DELETE  c.*
FROM    zip_code c
JOIN    (
        SELECT  area_code, MIN(id) AS mid
        FROM    zip_code
        GROUP BY
                area_code
        ) co
ON      c.area_code = co.area_code
        AND c.id <> co.mid