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命令