主题:退一步。怎么寻找两个数据表之间的差异数据 (50分)

  • 主题发起人 主题发起人 fengfan
  • 开始时间 开始时间
F

fengfan

Unregistered / Unconfirmed
GUEST, unregistred user!
主题:退一步。怎么寻找两个数据表之间的差异数据

前提是知道这两个表结构是一模一样的,但是具体到什么样的结构就不知道了。
同时,他们之间的数据一定存在相同的数据和差异数据,怎么寻找那些差异数据。
通过SQL语句来实现。难道没有办法吗?不可能吧。一定有。等待大家的回复。
--




 
An example for you as reference.
table1/table2 have fields (id1 Integer, name1 Char(10)).

SELECT id1, name1
FROM table1
WHERE id1 NOT IN
(SELECT id1
FROM table2)
 
我的方法:(假如两个表由一样的字段,field1,field2,field3)
select table1.field1,table1.field2,table1.field3
from table_name
where table1.field1<>table2.field1 or table1.field2<>table2.field2 or table1.field3<>table2.field3
 
两位,都不很完全啊。我要实现的比这个复杂,
因为我只知道两个表的结构相同,他们有多少个字段我都不知道啊。
 
呵,用两句呀!
var i:integer;
s:string;
begin
query1.sql.text:='select top 1 from a';
query1.open;
for i:=0 to query1.fields.counts-1 do
begin
s:=s+' and a.'+query1.fields.displacetext+'='+'b.'+query1.fields.displacetext;
end;
s:=copy(s,5,length(s)-5);
s:= 'select a.*,b.* from table_name a,table1 b where '+s;
query1.sql.text:=s;
query1.open;
end;
displacetext:我有点忘了,自己查查
 
1.先获取主键信息.
2.再动态写SQL.写法基本用ourself的.
但速度好象不太理想.
 
多人接受答案了。
 
后退
顶部