我的客户端有两个数据库,一个用于latlng的地方,另一个数据库用于其他每个表(为什么我不知道)。我正在使用coldfusion,我可以告诉我需要查询查询,因为CF不允许在同一个cfquery标签中有多个数据源。现在由于某种原因,latlng表中的主键是一个字符串而另一个表是双精度(这也是我不知道的原因)。但在查询中我现在正在测试我没有提取任何数据。我仍然试图了解QoQ的工作原理,但我认为我的总体思路已经下降了。谢谢!
<cfquery name="get_restrauntinfo" datasource="#listings#" dbtype="odbc">
SELECT *
FROM listings_new
WHERE pub_code = 'GridR'
</cfquery>
<cfquery name="get_latlng" datasource="#latlng#" dbtype="odbc">
SELECT member_id, mlat, mlong
FROM maps
</cfquery>
<cfquery name="join_rest" dbtype="query">
SELECT *
FROM get_latlng, get_restrauntInfo
WHERE 'parseInt(get_restrauntInfo.cli_number)' = get_latlng.member_id
</cfquery>
答案 0 :(得分:2)
虽然CF在来自cfquery标记中不允许多个数据源,但 仍然可以跨数据库加入。请参阅:http://www.google.com/search?q=join+across+databases
假设它对您有用,它似乎比2个单独的查询和QoQ更简单。
答案 1 :(得分:1)
我愿意并且已经支持查理的答案,但为了修复现有代码,你可以尝试更换
'parseInt(get_restrauntInfo.cli_number)'
与
CAST( get_restrauntInfo.cli_number AS INTEGER )
。
答案 2 :(得分:0)
所以我最终做的是使用CFLOOP而我正在制作更多的查询然后我必须工作!这是代码:
<cfloop query="get_restrauntinfo">
<cfquery name="get_latlng" datasource="#latlng#" dbtype="odbc">
SELECT member_id, mlat, mlong
FROM maps
WHERE member_id = '#get_restrauntinfo.cli_number#'
</cfquery>
<cfset title = #get_restrauntinfo.publish_as#>
var content = addContent(#get_restrauntinfo#);
<cfoutput query="get_latlng">
var #toScript(title, "title")#;
addMarker(#get_latlng.mlat#,#get_latlng.mlong#, title, content, map);
</cfoutput>
</cfloop>