当前位置: 代码迷 >> VFP >> VFP 多表查询解决方法
  详细解决方案

VFP 多表查询解决方法

热度:3288   发布时间:2013-02-26 00:00:00.0
VFP 多表查询
现在有  A B C D  4个表


怎么同时查询呢 

查询一个内容 在 4个表中



------解决方案--------------------------------------------------------
用 vfp9 + 1楼方法
如果是 vfp6,需要将4个表先合成1个表,然后再对合成的表进行查询,如:
select f1 from a;
union all;
select f1 from b;
union all;
select f1 from c;
union all;
select f1 from d;
into table newtable
select * from newtable where ...
------解决方案--------------------------------------------------------
*---VFP6.0代码
*---1.查询
CREATE CURSOR TABA (姓名 C(8),年龄 N(2))
FOR I=1 TO 5
    INSERT INTO TABA VALUES (REPLICATE(CHR(64+I),6),I+20)
ENDFOR
CREATE CURSOR TABB (姓名 C(8),年龄 N(2))
FOR I=6 TO 10
    INSERT INTO TABB VALUES (REPLICATE(CHR(64+I),6),I+20)
ENDFOR
CREATE CURSOR TABC (姓名 C(8),年龄 N(2))
FOR I=11 TO 15
    INSERT INTO TABC VALUES (REPLICATE(CHR(64+I),6),I+20)
ENDFOR
CREATE CURSOR TABD (姓名 C(8),年龄 N(2))
FOR I=16 TO 20
    INSERT INTO TABD VALUES (REPLICATE(CHR(64+I),6),I+20)
ENDFOR
SELECT 姓名 FROM TABA UNION ALL SELECT 姓名 FROM TABB UNION ALL SELECT 姓名 FROM TABC UNION ALL SELECT 姓名 FROM TABD INTO TABLE ABCD
*---2.合并后增加字段
SELECT ABCD
ALTER TABLE 表A ADD 部门 C(10)

------解决方案--------------------------------------------------------
严格地讲,你应该分别在A,B,C,D各个表中添加字段“部门”而且输入字段的值,然后再使用 UNION把4张表合成一张表,这样“部门”输入方便(同一表部门相同)。而且先合并(UNION),部门不同,但是同名同姓同年龄的记录将合并成一个记录,因为关系数据库中的一张表不允许有相同的记录(重复记录会自动防止)。
  相关解决方案