我有两个表来包含国家的州(state_table)和城市(city_table)
城市表具有state_id以与state_table相关联
这两个表已经有数据。
现在的问题是:
城市表中包含一个州内多个城市的条目。而其他城市可能也有相同的城市名称
例如:在城市表中,cityone将有5个出现次数与stateone和2个出现次数与statetwo
那么,我该如何编写查询以保留每个州的一个城市并删除其余部分?
模式如下
这是示例数据。
城市表具有state_id以与state_table相关联
这两个表已经有数据。
现在的问题是:
城市表中包含一个州内多个城市的条目。而其他城市可能也有相同的城市名称
例如:在城市表中,cityone将有5个出现次数与stateone和2个出现次数与statetwo
那么,我该如何编写查询以保留每个州的一个城市并删除其余部分?
模式如下
CREATE TABLE IF NOT EXISTS `city_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state_id` int(11) NOT NULL,
`city` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `state_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state` varchar(15) NOT NULL,
`country_id` smallint(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
这是示例数据。
id state_id city
1 1 city_one
2 1 city_two
3 1 city_one
4 1 city_two
5 2 city_one
6 3 city_three
7 3 city_one
8 3 city_three
9 4 city_four
10 4 city_five
原始表格有152,451行