我有一张所有共享相同区号的城市表:
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”。
答案 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