请问各位大侠,帮我解决一个问题
如题:有两张表A表(id name)和B表(id name),拿B表和A表对比,如果有重复的name,则把重复的name放入C表中,且把A表中有重复name的记录删除,由于A和B表有成千上万条记录,如何提高郊率?
在此先谢谢各位大侠了!!
如题:有两张表A表(id name)和B表(id name),拿B表和A表对比,如果有重复的name,则把重复的name放入C表中,且把A表中有重复name的记录删除,由于A和B表有成千上万条记录,如何提高郊率?
在此先谢谢各位大侠了!!
同时把A表中这些对应的记录删除掉?如果是这样的话,那在2个表的name列上建立索引,然后直接内联接处理就可以了。
不知该怎么写SQL语句!
望哪位仁兄,写几条SQL语句给小弟看看,在此谢过了!
select id,name from A where exists (select 1 from B where name = A.name)且把A表中有重复name的记录删除
delete A from A inner join B on a.name=b.name;
你的问题不是 "如何提高对数据库的循环查找速度?"
而是 "如何找出重复记录!"
问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)
当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
create index ix_name2 on B表(name);create table C表
as
select a.name A表 a,B表 b where a.name=b.name;delete a from A表 a,B表 b where a.id=b.id;