在未链接的两个不同数据源服务器上链接两个表

时间:2015-10-26 18:41:09

标签: sql coldfusion

我正在使用SQL Server和ColdFusion。我在不同的数据源上有两个表。我试图将第一个表与op_id和Closed_by链接到第二个表到assoc_id。作为回报,知道assoc_id匹配该表上的assoc_name。

基本上我有一个应用程序,当用户在提交工作时键入op_id的关联编号,我希望op_id链接到另一个表上的assoc_id,这样我就可以知道该个人的姓名了。与Closed_by基本相同的是。

对此的任何帮助将不胜感激。

<cfquery name="employeeID" datasource="officeweb">
            SELECT op_id, Closed_by
            FROM dbo.Dealer_Track_Work
        </cfquery>

       <!---<cfdump var="#employeeID#" label="getDetailsQuery1">--->

       <cfquery name="employeeName" datasource="tco_associates">
            SELECT assoc_id, assoc_name
            FROM dbo.tco_associates
        </cfquery>

       <!---<cfdump var="#employeeName#" label="getDetailsQuery1">--->

        <CFQUERY NAME="getDetailsUnion" DBTYPE="query"> 
         SELECT * FROM employeeName gt 
         inner join employeeID gd on get.op_id = gd.assoc_id 
         </CFQUERY> 

     <cfdump var="#getDetailsUnion#" label="getDetailsUnion">

1 个答案:

答案 0 :(得分:2)

查询查询不支持JOINS或表别名。

<cftry>
    <cfquery name="employeeID" datasource="officeweb">
        SELECT op_id, Closed_by
        FROM dbo.Dealer_Track_Work
    </cfquery>

    <!---<cfdump var="#employeeID#" label="getDetailsQuery1">--->

    <cfquery name="employeeName" datasource="tco_associates">
        SELECT assoc_id, assoc_name
        FROM dbo.tco_associates
    </cfquery>

    <!---<cfdump var="#employeeName#" label="getDetailsQuery1">--->

    <cfquery name="getCombinedDetails" dbtype="query">
        SELECT *
        FROM employeeName, employeeID
        WHERE CAST(employeeID.op_id AS integer) = CAST(employeeName.assoc_id AS integer)
    </cfquery>

    <cfdump var="#getCombinedDetails#" label="getCombinedDetails">

    <cfcatch type="any">
        <!--- Dump any error and abort the request --->
        <cfdump var="#CFCATCH#" label="cfcatchError" abort="true"/> 
    </cfcatch>
</cftry>

注意:如果tco_associatesDealer_Track_Work包含大量数据,则此方法会很糟糕。如果您获得了特定的ID,那么您应该在前两个查询中按ID过滤,这样数据库服务器就不会返回大的结果集。