查询不提取数据类型不匹配的数据的查询

时间:2011-07-16 16:49:44

标签: sql coldfusion qoq

我的客户端有两个数据库,一个用于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> 

3 个答案:

答案 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>