【超难 高手指点】如何用SQL语句删除查出重复内容

来源:百度知道 编辑:UC知道 时间:2024/05/23 18:59:26
一个表 两个字段
查出第1个字段中重复的内容
而且要在第2个字段中的内容也是重复的
例如:
一条数据
第1个字段中的值为:1
第2个字段中的值为:9
另外一条数据
第1个字段中的值为:1
第2个字段中的值为:9
的重复关系
也就是双重重复

这是查询重复语句
select * from 表 a,( select 字段1,字段2,count(*) from 表 group by 字段1,字段2 having count(*) > 1 ) b
where a.字段1 = b.字段1 and a.字段2 = b.字段2

请问高手删除重复语句是?两个字段相同的只保留1条
Microsoft Access
数据库(Access 2000 文件格式)

高手这条是你昨天提供的查询重复语句 可以使用
现在查询出来上千条 如果人工删除很费时间 而且以后还会有很多重复 所以请高手指点一句删除语句
select * from 表1 a,( select 字段1,字段2,count(*) from 表1 group by 字段1,字段2 having count(*) > 1 ) b where a.字段1 = b.字段1 and a.字段2 = b.字段2

主要我是菜鸟 不会写语句 所以才来知道请教高手了

删除重复数据必须保证每条数据有一个列来区分特殊性,一般都有id字段来区分,

DELETE FROM TABLE_NAME
WHERE id <> (SELECT MAX(id) id FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);

我说的就是这个意思,如果所有字段都相同那就没办法了,所以我写的这句是保留相同数据里面id最大的一条,其他的删除,不管有几条重复

DELETE FROM 表1
WHERE id <> (SELECT MAX(id) id FROM 表1 D
WHERE 表1.字段1=D.字段1 AND 表1.字段2=D.字段2);

你用的什么数据库

应该可以的,你在稍微改下,我这没有access数据库不好调试

delete from 表
where id <> (select min(id) form 表 group by 字段1,字段2);

提供下另外一种方法