一个简单的数据库问题。请大家帮助!(100分)

  • 主题发起人 主题发起人 张辉明
  • 开始时间 开始时间
select a.*,b.*,c.*,d.*
from a full join b on a.field1=b.field1
full join c on a.field1=c.field1
full join d on a.field1=d.field1
 
將4結果直接寫入結果表中.
 
加个关键字段,用左联或右联
 
用Union聯接﹗
 
这个问题我也遇到过,实在不好解决,执行效率太差......
当这几个表的数据一样多时且能唯一时,可能还说得过去,否则的话,
唉,真的是自己找罪受.!
 

好像大家还是没有理解我的意思。
我的四个数据集都是用Tquery查询出来的,而不是一个单一表文件!现在要按如下要求合并到一个 数据表中或一个Query中。
好像不可以用SQL因为我的四个数据集不是*.DB文件。大家帮帮忙忙呀,怎么解决比较好。
因为  ugvanxk,yfm对我的问题还是没有理解。所以有必要再讲明白一下。
例如:
Query1: Query2: Query3: Query4:
字段aa 字段bb 字段cc 字段dd 字段ee 字段ff 字段aa 字段bb 字段cc 字段dd 字段ee 字段ff 字段aa 字段bb 字段cc 字段dd 字段ee 字段ff 字段aa 字段bb 字段cc 字段dd 字段ee 字段ff
123 234 341 564 522 231 431 234 521 521 451 423 234 422 311 431 452 521 741 763 731 731 621 721
D22 422 452 632 852 832 832 732 732 922 392 962 412 762 422 g32 622 522 722 D83 732 922 832 732
433 433 633 313 223 443 733 523 563 523 723 523 733 843 833 733 823 523 723 523 DC3 DD3 DE3 733
D14 D44 444 522 554 414 234 234 524 524 524 834 364 734 DC6 D63 634 634 634 424 524 254 724 524
DA5 DB5 DC5 DD5 DE5 DF5
DA6 DB6 DC6 DD6 DE6 DF6


那么我要的表或query的结果为:

字段1  字段2 字段3  字段4 字段5  字段6 字段7  字段8 字段9 字段10 字段11 字段12 字段13 字段14 字段15 字段16 字段17 字段18 字段19 字段20 字段21 字段22 字段23 字段24
123 234 341 564 522 231 431 234 521 521 451 423 234 422 311 431 452 521 741 763 731 731 621 721
D22 422 452 632 852 832 832 732 732 922 392 962 412 762 422 g32 622 522 722 D83 732 922 832 732
433 433 633 313 223 443 733 523 563 523 723 523 733 843 833 733 823 523 723 523 DC3 DD3 DE3 733
D14 D44 444 522 554 414 234 234 524 524 524 834 364 734 DC6 D63 634 634 634 424 524 254 724 524
DA5 DB5 DC5 DD5 DE5 DF5
DA6 DB6 DC6 DD6 DE6 DF6

如果分嫌少,可以再加!只要能解决问题!
 
我想先把Query中的数据集存放在一个表中。这个一共就有四个表。然后用外联结,即可。

可是怎么把Query1中的内容,存放到一个数据表。也就是放到一个*.DB的文件。?本人菜,请指教。谢谢
 
我的感觉是通过SQL语句并不能实现你的目的。可以通过程序来嘛!
建立一个表,即是你所需要的结果集一样结构的表,循环将各QUERY的值添进去嘛!好象也
不是太复杂!这样也能解决问题!但就是太土了些!
 
2:p96114
就是呀,我也想用笨一点的办法。
可是怎么用循环将各QUERY的值添加到一表中,

当query打开后,query.fieldbyname['字段1'].asstring 是第一条记录的值。
可是怎么取第二条记录的值?即记录指针下移一个。
 query.next; //这样是不可以的。因为只要执行这句就是发生错误!
请指教!!
 
TQuery:目标Query
Query1,Query2,Query3,Query4源Query;
Flag:integer;标志

Flag :=1//标识未结束

while Flag=1 then
begin
TQuery.ADD;
if not Query1.eof then
begin
TQuery.FieldByName('字段1').Value := Query1.Fieldbyname('字段1').Value;
......
end;

if not Query2.Eof then
begin
TQuery.FieldByName('字段5').Value := Query2.Fieldbyname('字段1').Value;
end;
Tquery.post;
Query1.next;
Query2.Next;
Query3.Next;
Query4.Next;
if Query1.eof and query2.eof and query3.eof and query4.eof then
flag :=1
else
flag :=0;
end;

Query.Next不会出错,在之前你先检测其是否到了尾部
 
分给了:p96114 谢谢
 
后退
顶部