如何在CFQUERY中使用两个数据源?

Evi*_*mes 10 sql coldfusion coldfusion-9

我正在使用ColdFusion 9.1.

我需要在一些查询中使用两个不同的数据源.我知道它可以完成,因为我看到其他代码使用两个不同的数据源,它工作正常.

我已经尝试了很多组合,但无法获得任何工作,但我知道我的两个数据源都正常工作.

我在此范围内设置了默认数据库.默认值为"DatasourceOne".

<cfquery>
SELECT UserID
FROM   DatasourceOne.TableOne IN (SELECT Userid FROM DatasourceTwo.TableTwo )
</cfquery
Run Code Online (Sandbox Code Playgroud)

有关使用多个数据源的规则或准则是什么?

澄清

我本来应该问我如何在一个查询中使用两个数据库(而不是数据源).我相信你的答案会有所不同.我们确实将两个数据库设置为数据源,但我自己有点困惑.

Bil*_*ens 18

根据您的数据库,如果第二个数据库位于同一服务器上(或定义为链接服务器)并且数据源中的用户具有权限,则通常可以引用其他数据库.

SELECT * FROM myTable 
WHERE myField IN 
(SELECT otherField FROM otherDatabase.dbo.tableName)
Run Code Online (Sandbox Code Playgroud)

  • 此语法"otherDatabase.dbo.tableName"适用于MicroSoft SQL.排除.dbo部分以使您的查询在MySQL中执行. (2认同)

bpa*_*lla 12

您无法在单个CFQUERY中与两个CF(JDBC)数据源进行通信.你可以做什么:

  • 在同一数据源上使用两个数据库.例如,如果您有一个带有两个数据库的SQL Server实例,则可以通过与两个数据库通信的JDBC连接运行查询.这看起来就像您在问题中描述的那样.这是一个更彻底的解释.
  • 使用查询查询.分别从两个数据库中提取数据,并使用CFC或页面中的QoQ加入结果.


Jus*_*ott 7

ColdFusion在给定查询中一次只能与一个数据*源*通信.但是,如果需要在同一服务器上与多个数据*base*进行通信,则可以通过显式提供需要访问或连接在一起的数据库,表和列的完整路径来实现.另请注意,ColdFusion中的data*source*配置为使用的用户必须能够访问这两个数据库才能使其正常工作.