以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  大数据比对如何提高速度  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119188)

--  作者:zhouhai39
--  发布时间:2018/5/19 14:32:00
--  大数据比对如何提高速度
我用foxtable,进行数表A中的所有数据在数表B中查找,用QSLFind查找,如果数表A中的数据在B中找到,就在A查找到,在B中进行标记,因为A表有数据约4万,数表B中有40多万,结果foxtable运行很久都没结果,估计是卡死了。怎么办?有何办法可以提高比对速度?请教各位大师,谢谢!
--  作者:有点蓝
--  发布时间:2018/5/19 14:57:00
--  
增加一个标记列,然后直接使用sql操作

update 表A set 标记列=1 from 表A where exist (select 编号 from in 表B where 表B.编号 = 表A .编号)

--  作者:zhouhai39
--  发布时间:2018/5/19 17:35:00
--  
谢谢!更正一下,我是用表A的数据中在表B中查找,如果查得到,就在表A中做个标记。请问也是一样的代码吗?我在执行SQL中,输入了上述的代码,提示“操作符缺少”,这是怎回事?我是初次接触这些东西,基本不懂。
--  作者:有点蓝
--  发布时间:2018/5/19 17:45:00
--  
就是2楼的用法,不会就做个例子发上来。

或者自己研究一下sql:http://www.foxtable.com/webhelp/scr/0687.htm

--  作者:zhouhai39
--  发布时间:2018/5/19 17:55:00
--  
补充一下,我把表B设置成外部数据源,执行后说找不到,数表B
--  作者:zhouhai39
--  发布时间:2018/5/19 18:02:00
--  
数表A是内部数据源,数表B是外部数据源,想用表A的数据与表B的数据进行比对,看看表A中有哪些数据在表B中,因数表A用4万多行,数表B有40多万行数据,原来用SQlfind进行查找,无法执行下去。根据2楼师傅的指点,
--  作者:zhouhai39
--  发布时间:2018/5/20 17:52:00
--  
执行以下语句:

update 表A set 标记列=1 from   {表A} where exist (select 证件号码    from in {表B}   where {表B}.证件号码 = {表A} .身份证号码)
提示:“未知编译错误”,
另外,我的表A为内部数据源,表B为外部数据源。如何处理?
谢谢!

[此贴子已经被作者于2018/5/20 17:53:24编辑过]

--  作者:有点甜
--  发布时间:2018/5/20 20:42:00
--  

只有AB表在同一个数据源下(或者在同一个数据库服务器上)才能写sql语句查询的。

 

一个内部、一个外部,是不能写sql语句查询的。

 

建议把你的表A另存为外部数据源,再比较。不然,就只能find、sqlfind比较。


--  作者:zhouhai39
--  发布时间:2018/6/3 0:08:00
--  
谢谢!