啊对不起,习惯上说成是A表了,这个数据库文件只有一个表,CIDZ表,
CIDZ表:
ID
地址
地区
1
厦门
华东
2
泉州
华东
3
厦门
华东
4
深圳
华南
5
深圳
华南
6
厦门
华东
delete from cidz where id NOT in (select max(id) from cidz group by 地址)
我的原意只是删除这个CIDZ表的重重复记录,但保留重复地址里面ID最大的一条记录
呵呵,对啊,我觉得你的愿意应该也不是只保留最大的一行记录。这么写:DELETE FROM CIDZ WHERE EXISTS (SELECT 1 FROM CIDZ A WHERE A.ID > CIDZ.ID AND A.地址 = CIDZ.地址)你运行一下试试。因为NOT IN是一个检索,要先运行IN里面的语句,这样相当于多了一个全表的检索操作,先把范围选出来,所以当你的表数据非常大的时候,速度会非常慢。可是EXISTS语句就不同了,这个语句是一个返回TRUE或者FALSE的查询,如果返回TRUE,那么就i是符合条件的。你看一下那个语句,可以这么解释:删除表CIDZ中的数据,什么样的数据呢?是在这个表中存在ID比他大,而地址