从两个数据库中取得结果集的最优方法求解解决思路

从两个数据库中取得结果集的最优方法求解
大虾们好

我最近遇到一个问题

VB代码,从两个数据库中取得结果集

然后取这两个结果集的交集
Recordset1结果集形如
restaurant0001
restaurant0005
restaurant0009
restaurant0010
....
Recordset2结果集形如
restaurant0001
restaurant0005
restaurant0006
restaurant0011
....

因为是2个数据库,所以直接在SQL上面做文章我认为已经不可能

我已经想到2个方法,但是效率都不高
1.Recordset1和Recordset2取出来之后,利用拿Recordset1的每一个去Recordset2里面去查,找到就把它塞到Recordset3中
这是双重循环,偏偏我的数据量很大,每个结果集估计5000条数据,效率不高
2.利用Recordset自带的Recordset2.find "restaurantcode = ''",拿Recordset1的每一个去Recordset2里面去find ,找到就把它塞到Recordset3中,已经试过了,这个效率也很差,估计也是双重循环

请高手指点迷津,定送分

------解决方案--------------------
因为是2个数据库,所以直接在SQL上面做文章我认为已经不可能
--------------------
不一定的,要看你是什么数据库,是不是在同一服务器上等等信息....
------解决方案--------------------
探讨
因为是2个数据库,所以直接在SQL上面做文章我认为已经不可能

------解决方案--------------------
那应该用4楼的in,我用的是informix。

select a from instance1:table1@host1 where a in (select a from instance2:table2@host2) 
instance 和 host 和 table name 均可不同,但一定要连接的上
------解决方案--------------------
用第1个查询的结果做第2个查询的条件,则得到是就是交集:
SQL code

SELECT *
FROM OPENROWSET('SQLOLEDB', '127.0.0.1'; 'sa'; 'dg', master.dbo.sjb) 
      Rowset_1
WHERE (日期 IN
          (SELECT 日期
         FROM sjb))