首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

VFP 多表查询解决方法

2013-01-01 
VFP 多表查询现在有A B C D4个表怎么同时查询呢 查询一个内容 在 4个表中[解决办法]用 vfp9 + 1楼方法如果

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),部门不同,但是同名同姓同年龄的记录将合并成一个记录,因为关系数据库中的一张表不允许有相同的记录(重复记录会自动防止)。

热点排行