我正在使用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">
答案 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_associates
或Dealer_Track_Work
包含大量数据,则此方法会很糟糕。如果您获得了特定的ID,那么您应该在前两个查询中按ID过滤,这样数据库服务器就不会返回大的结果集。