我用select * from T1,T2 where T1.Path=T2.Path 查出T1,T2表所有Path字段相同的记录,如果我要删除这些记录,应该怎么做?
解决方案 »
- 变参数组传递问题。
- 很郁闷的问题,读取bitmap文件
- 最近开始学习DLL,请那位大侠给一个例子,谢谢
- 怎么拷贝PARDOX记录到SQLSERVER数据库的表中?
- 高手们,dbchart中如何给labels赋值,等待中。。。在线结贴
- 向内蒙古赤峰的delphi程序员大个招呼?????
- 请问如何得到当前RichEdit控件当前可显示的最多行数,为什么用RichEdit.Height/abs(RichEdit.Font.Height)不行???
- 怎样将普通的应用程序发布成网页的形式?
- 我是用DELPHI的,已经习惯了DELPHI,想学JAVA!高手给点建议,好吗!
- 关于一个自定义容器组件在一个新的Form里构造时的窗口问题(Control '' no parent Window)
- 帮我看看这样的一个函数及函数的调用,不解?
- 除数为0的错误,请帮忙解决。
ID Path ID Path
1 abc 1 abc
2 bcd 2 bcd
3 cde 3 cde
4 efg 4 sds就这样
select * from T1,T2 where T1.Path=T2.Path后
T1,T2表应该是这样
ID Path ID Path
4 efg 4 sds
因为查两张表中相同的记录很容易,而且速度也较块
所以能不能先 select t1.path,t2,path from t1,t2 where t1.path=t2.path
这样返回两张表相同的记录能不能根据这个查出每张表中缺少或多余的记录呢?
不知道行不行。
DELETE T2 WHERE ID IN (SELECT T2.ID FROM T1, T2 WHERE T1.Path = T2.Path)
还是建议用临时表,建一个只有path字段的表temp
insert into temp select t1.path from T1,T2 where T1.Path=T2.Path
然后
DELETE from T1 WHERE path IN (select path from temp)
DELETE from T2 WHERE path IN (select path from temp)
insert into temp select t1.path from T1,T2 where T1.Path=T2.Path
然后
DELETE from T1 WHERE path IN (select path from temp)
DELETE from T2 WHERE path IN (select path from temp)drop table temp//删除临时表
select a.path into #tmp from t1 a,t2 b where a.path=b.path
delete from t1 where path in(select path from #tmp)
delete from t2 where path in(select path from #tmp)
drop table #tmp
commit tran