| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:如何查找另一个表中符合的记录赋值到本表
只看楼主 加入收藏
wzyuehua
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-19
结帖率:0
收藏
已结贴  问题点数:10 回复次数:17 
如何查找另一个表中符合的记录赋值到本表
有两个数据表,A数据表字段为学号、成绩,B数据表字段是学号、姓名,我想根据学号,将B表中的姓名字段记录加到A表中。A表记录有6万多条,B表有9000多条,我用loca 定位,用repl 赋值,结果死机了。有高手给个意见吗?
搜索更多相关主题的帖子: 数据表 记录 如何 9000 姓名 
2013-10-19 09:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:2 
原表最好不好动,可以生成一个临时表供查询使用。
VFP9代码:
SELECT A.*,SPACE(10) 姓名 FROM 表A INTO CURSOR T RADEWRITE
UPDATE 表A SET 表A.姓名=表B.姓名 WHERE 表A.学号=表B.学号 FROM 表B

坚守VFP最后的阵地
2013-10-19 10:29
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
SELECT A表.*,B表.姓名 FROM A表 LEFT JOIN B表 on A表.学号=B表.学号
2013-10-19 10:52
wzyuehua
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-19
收藏
得分:0 
回复 2楼 sdta
原表要补充完整,因为姓名字段来自多个表,就是说A表6万多行记录中的姓名来自多个文件,我要把多个文件中的姓名字段通过对应的学号填到A表中。能再详细点吗?谢谢。
2013-10-19 12:35
wzyuehua
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-10-19
收藏
得分:0 
以下是引用sdta在2013-10-19 10:29:05的发言:

原表最好不好动,可以生成一个临时表供查询使用。
VFP9代码:
SELECT A.*,SPACE(10) 姓名 FROM 表A INTO CURSOR T RADEWRITE
UPDATE 表A SET 表A.姓名=表B.姓名 WHERE 表A.学号=表B.学号 FROM 表B

原表要补充完整,因为姓名字段来自多个表,就是说A表6万多行记录中的姓名来自多个文件,我要把多个文件中的姓名字段通过对应的学号填到A表中。能再详细点吗?谢谢。
2013-10-19 12:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
VFP9代码:
UPDATE 表A SET 表A.姓名=表B.姓名 WHERE 表A.学号=表B.学号 FROM 表B

不明白的地方看VFP帮助文件

坚守VFP最后的阵地
2013-10-19 13:04
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:2 
我看你在顶楼给出的A表结构中没有“姓名”字段,而在4、5楼,发现你说“A表6万多行记录中的姓名来自多个文件”,不晓得你那A表原来是否有“姓名”字段?我分有和没有两种情况给出9.0版本的代码:
A表没有“姓名”字段:                              A表有“姓名”字段:
SELECT A.学号,B.姓名,A.成绩 ;                      UPDATE A SET 姓名=B.姓名 FROM B WHERE A.学号=B.学号
   FROM A JOIN B ;
      ON A.学号=B.学号 ;
   INTO TABLE AA
USE IN A
USE IN AA
ERASE A.DBF
RENAME AA.DBF TO A.DBF

如果你获取“姓名”数据的表文件有多个,可参考如下做法(假设是两个取“姓名”数据的表文件B和C):
A表没有“姓名”字段:                              A表有“姓名”字段:
SELECT A.学号,B.姓名,A.成绩 ;                      UPDATE A SET 姓名=T1.姓名 ;
   FROM A ;                                           FROM (SELECT * FROM B UNION SELECT * FROM C) T1 ;
      JOIN B ON A.学号=B.学号 ;                       WHERE A.学号=T1.学号
      JOIN C ON A.学号=C.学号 ;                    
   INTO TABLE AA
      ...
      ...


[ 本帖最后由 taifu945 于 2013-10-19 14:06 编辑 ]
收到的鲜花
  • tlliqi2013-10-19 14:27 送鲜花  10朵   附言:学习
2013-10-19 13:50
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
帮人原来还得这么那么猜
2013-10-19 14:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
自己不能变通一下吗?
非得要一步到位的代码?
2013-10-19 14:02
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用tlliqi在2013-10-19 14:00:20的发言:

帮人原来还得这么那么猜
谁说不是啊?很多人提问时都说不清楚具体情况,只能根据他留下的只言片语猜一猜了。从这里也能看到我们国家语言文字教育上的失败:英语越来越好,中文越来越差。
2013-10-19 14:03
快速回复:如何查找另一个表中符合的记录赋值到本表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038144 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved