注册 登录
编程论坛 VFP论坛

请教各位老师SQLEXEC()如何实现子查询?谢谢

wxzd123 发布于 2024-07-29 19:30, 463 次点击
两个本地表可以这样查出biao2在biao1中的数据。
SELECT * FROM biao1  WHERE 身份证号 in (SELECT 身份证号 FROM biao2) INTO CURSOR biao3
当表biao1在sql服务器上,表2是本地表是时,如何用SQLEXEC()从服务器上取回数据?谢谢

4 回复
#2
easyppt2024-07-29 20:15
表2本地的话,可以直接枚举,放入 IN() 子句中,查询就可以了,比如:

select * from biao1 where 身份证号 in ('1','2','3'.....)

然后spt提交就可以了,MSSQL的in 子句,我测试过放入几百个ID,速度都很快。
#3
laowan0012024-07-29 20:28
两个表不在一个地方,直接用一个SQLEXEC()是没法完成的,就象2楼的方法,实际是先提取表2的有效内容,加工成SQLEXEC()的条件
有个原则,让本地与服务器传递的内容最少,这样可以减少执行时间,从而提高效率
按楼主的例子,表1的数据量应该比表2大,表2是本地表,那就把本地表的有效内容传递到服务器上

#4
wxzd1232024-07-29 21:41
谢谢easyppt老师,我生成2500个身份证号字符串,取回27000多条记录,这个in 对字符串长度没有限制,挺好,感谢
#5
wxzd1232024-07-29 21:44
谢谢laowan001版主,如果在sql建一个表,把要查找身份证号先传上去也可以,还有删除,如果多人用就比较麻烦,还是人多办法多,谢谢版主了
1