第九个寡妇电视连续剧:SQL中删除重复项,急!!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 06:13:59
有两个表table1和table2,table1比较大,有80几万条数据,其中一项有索引,不能重复。table2中的数据要转到table1中,因其中许多条与table1中有索引的项重复,转不进去。我可以将这些重复项可以用select语句查询出来,但不知怎样用一个语句将重复项都删掉?(这些重复的必须删掉)我每次都是一条一条删除,要很多时间。特在此向各位大虾请教,拜托大家赶快帮忙,千万!千万!
另外:我不是学电脑的,只是单位赶鸭子上架,对sql可以说就是照葫芦画瓢的用着,所以万望大家能把语句些清楚些,原谅我是苯人吧。谢谢大家!
很感谢大家的回答!
有一些情况要补充一下:
是table2的数据要转到table1中,table1中的数据本身是不重复的,但table2要转进去的数据有一些与table1中的数据重复,所以转不进去,而且table1和table2中带重复的项是不能随便改的。
例如:
table1有一下两条数据,产品型号有索引:
产品型号 名称 报价
A 一 100
B 二 200

table2要转到table1中的数据有一条是:
产品型号 名称 报价
A 一 100
此条与table1重复,转不进去,只要删掉就没有问题了,但不能把此条的产品型号随便改成别的。
我用以下语句可以将重复的项查出来:
SELECT table1.产品型号 FROM table1,table2
WHERE ( table1.产品型号 = table2.产品型号 )
因数据量很大,重复项很多,一条一条删除很费劲。
我将上述语句中的SELECT改成delete,但语句不对.

拜托大家了!

一个简单解决办法是,找到table1的最后一行数据,把索引记下来,然后对table2进行下面操作:
update table2 set 索引 = 索引 + table1的最大索引

然后合并数据,问题就解决了呵呵

用distinct
加上group by 语句 试试

比如table1中有个字段SMP
可以用下面SQL查询出表table1中不不重复的SMP字段
SELECT * FROM table1 GROUP BY SMP ORDER BY SMP
查询后的数据中SMP字段就没有重复的了,剩下的你自己都OK.