VFP 中 关于join with 命令
回答您的问题:
新生成的表的记录数为:满足条件(相同学号)的记录数。
解释:
现在一般不怎么用这个命令了,它是实现两表连接生成一个新表的。
该命令格式是:
join with 另一个表名或工作区别名 to 新表名 for 连接条件 fields 新表所含字段
新表中只含有满足连接条件的记录。(相当于SQL的两表内联)
觉得好请采纳 谢谢!
vfp6.0 join 问题
合并库方法
SELECT B
USE XX (需要合并的DBF文件)(对应待合并库只有一条记录)
SELECT A
USE YY(需要合并的DBF文件)
join with B to ZZ(合并后的DBF文件)for dm=B.dm(dm为两库联结字段)[fiel bmh,b.xm,b.zxdh,zxdh2](可选合并后的字段,如字段位于XX中注明b)
请问vfp6 JOIN怎么使用
select id 表1.a,表2.b from 表一 full join on 表1.id=表2.id into table 表3
VFP中关于连接查询的问题 where... = ... 和 join...on...结果的区别?
第1种相当于Inner Join,即示temp1,temp2的交集
第2种可以包括Left Join,Right Join,Full Join,Inner Join具体含意看单词就明白了
vfp left join 包含
select * from A left join B on a.content = b.gjz
注:left join是以左表为准的,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录。B表记录不足的地方均为NULL。
vfp6.0中的join命令怎么使用,最好有实例,谢谢!
join的命令格式我忘了,但是只要有for短语出现,其后肯定跟的是表达式,而上面没一项符合表达式的书写规格
2级VFP,SQL哪种情况下用 inner join .........on...... 语句
不知你说的用逗号连接是怎么回事,如果两个表要连接查询结果的话肯定要用到下面四种情况的一种。不是INNER JOIN的连接就是其他三种情况之一。
具体举个例子
SELECT a.xh, a.yw, b.xx FROM a INNER JOIN b ON a.xh =b.xh
其中a.xh, a.yw, b.xx是显示的结果中包含的字段,FROM a INNER JOIN b 是结果中的字段来自哪两个怎么关联的表,ON a.xh =b.xh是两个表关联的关键字段。这是最简单的两个表的连接查询,必须要有这三个基本内容。至于排序、分组等功能的实现再另外加条件就行了。
_____________________________
两表连接有四种情况:
INNER JOIN 只有在其他表中包含对应记录(一个或多个)的记录才出现在查询结果中。即JOIN左右两则所有的匹配记录。
LEFT [OUTER] JOIN 在查询结果中包含:JOIN 左侧表中的所有记录,以及JOIN 右侧表中匹配的记录。OUTER 关键字可被省略;包含 OUTER 强调这是一个外连接 (outer join)。
RIGHT [OUTER] JOIN 在查询结果中包含:JOIN 右侧表中的所有记录,以及 JOIN 左侧表中匹配的记录。OUTER 关键字可被省略;包含 OUTER 强调这是一个外连接接 (outer join)。
FULL [OUTER] JOIN 在查询结果中包含:JOIN 两侧所有的匹配记录,和不匹配的记录;包含 OUTER 强调这是一个外连接 (outer join)。
比如两表A为语文成绩,B为数学成绩,通过学号XH连接,显示A.XH,A.YW,B.XH,B.XX:
A: B:
xh yw xh xx
1 80 1 90
2 85 3 70
3 60 4 50
1)、inner join 的结果为
1 80 1 90
3 60 3 70
2)、right join的结果为
1 80 1 90
3 60 3 70
.null. .null. 4 50
3)、left joinr的结果为
xh yw xh xx
1 80 1 90
2 85 .null. .null
3 60 3 70
4)、full joinr的结果为
xh yw xh xx
1 80 1 90
2 85 .null. .null.
3 60 3 70
.null. .null. 4 50
vfp命令语句jion on怎么用?
首先看一个简单的例子,是我曾做过的一个菜单项的一部分内容:
SELECT 收费.序号,收费.id1,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,收费.时间,收费.收据编号,收费.所属学期,;
收费.缴费方式,收费.收费部门,收费.减免金额,收费.本期实交,收费.备注,学生.班级号,学生.学校 INTO DBF xuesheng.DBF FROM 学生 inner JOIN 收费 ;
ON 学生.id1=收费.id1 ORDER BY 收费.序号
有两个表:
1、学生:主要存储学生的相关信息,有id1、专业、年级、层次、形式、学号、姓名、学号、班级号、学校等字段,id1在学生表中的记录是不重复的。
2、收费:主要存储收费的相关信息,有id1、序号、时间、收据编号、所属学期、缴费方式、收费部门、减免金额、本期实交、备注等字段
上一语句的作用是以id1作为连接学生表和收费表的字段,连接方式是内连接inner,排序依据是收费表的序号,连接结果存入表xuesheng。
再体会一下我做过的另一个菜单项
IF USED('学生')
SELECT 学生
ELSE
USE 学生 IN 0 AGAIN
ENDIF
SELECT 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,标准.所属学期,SUM(标准.学费) AS 学费,SUM(标准.书籍费) AS 书籍费,;
SUM(标准.其他) AS 其他,SUM(标准.合计) AS 合计,100000000.00-100000000.00 AS 减免金额,;
100000000.00-100000000.00 AS 本期应交,;
100000000.00-100000000.00 AS 本期实交,100000000.00-100000000.00 AS 欠交金额 ;
FROM 学生 JOIN 标准 ON 学生.id1=标准.id1 ;
GROUP BY 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,标准.所属学期,标准.学费,;
标准.书籍费,标准.其他,标准.合计 ;
UNION ;
SELECT 学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名,收费.所属学期,0,0,0,0,SUM(收费.减免金额) AS 减免金额,;
100000000.00-100000000.00 AS 本期应交,SUM(收费.本期实交) AS 本期实交,100000000.00-100000000.00 AS 欠交金额 ;
FROM 学生 JOIN 收费 ON 学生.id1=收费.id1 ;
GROUP BY 收费.所属学期,学生.id1,学生.班级号,学生.专业,学生.年级,学生.层次,学生.形式,学生.学号,学生.姓名 ;
INTO DBF xstotal_.DBF
SELECT id1,班级号,专业,年级,层次,形式,学号,姓名,所属学期,SUM(学费) AS 学费,SUM(书籍费) AS 书籍费,SUM(其他) AS 其他,;
SUM(合计) AS 合计,SUM(减免金额) AS 减免金额,SUM(本期应交) AS 本期应交,SUM(本期实交) AS 本期实交,;
SUM(欠交金额) AS 欠交金额 INTO DBF xstotal.DBF GROUP BY 所属学期,专业,年级,层次,形式,学号,姓名,id1,班级号 FROM xstotal_ ;
ORDER BY 专业,年级,层次,形式,学号,姓名,所属学期
SELECT xstotal
REPLACE ALL 本期应交 WITH 合计-减免金额,欠交金额 WITH 本期应交-本期实交
CLOSE ALL
DO FORM 统计1
menuav=0
你将上述命令复制到一个程序文件如test.prg中,用“工具-美化(...)”就能很清楚看到其中的层次。
vfp中,内部链接,左链接右链接完全连接分别是什么
我是这个学期考的vfp,不过我们课本的写的是联接,不知道是不是你想要的。
INNER JOIN等价于JION,为普通的联接,即内部联接:只能满足联接条件的记录才出现在查询结果中;
LEFT JOIN左联接:除满足联接条件的记录出现在结果中外,左表中不满足联接条件的记录也出现在结果中;
RIGHT JOIN右联接:除满足联接条件的记录出现在结果中外,右表中不满足联接条件的记录也出现在结果中;
FULL JOIN全联接:除满足联接条件的记录出现在结果中外,左右表中不满足联接条件的记录也出现在结果中;
不满足联接条件的记录对应部分为NULL。
vfp中,select xs.xh,xs.xm from jxsj!xs inner join jxsj!yxzy on xs.yxzydm=yxzydm 这个代码
jxsj 是数据库名称, xs是表名称
!是分隔符,就像表名和字段之间是用点号(.)分隔
转载请注明出处句子大全网 » VFP中关于joinwith命令