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

Sql 查询未提取数据且数据类型不匹配的数据,sql,coldfusion,qoq,Sql,Coldfusion,Qoq,我的客户机有两个数据库,一个用于放置位置,另一个用于每隔一个表的数据库,我不知道为什么。我正在使用coldfusion,根据我所能说的,我需要查询查询,因为CF不允许在同一个cfquery标记中有多个数据源。由于某种原因,latlng表中的主键是一个字符串,而另一个表是一个double,我也不知道为什么。但是在我现在的查询中,我正在测试我没有提取任何数据。我仍在努力理解QoQ是如何运作的,但我想我已经有了大致的想法。谢谢 <cfquery name="get_restrauntinfo"

我的客户机有两个数据库,一个用于放置位置,另一个用于每隔一个表的数据库,我不知道为什么。我正在使用coldfusion,根据我所能说的,我需要查询查询,因为CF不允许在同一个cfquery标记中有多个数据源。由于某种原因,latlng表中的主键是一个字符串,而另一个表是一个double,我也不知道为什么。但是在我现在的查询中,我正在测试我没有提取任何数据。我仍在努力理解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> 

虽然CF不允许在cfquery标记中包含多个数据源,但您应该仍然能够跨数据库连接。见:


假设这对您有效,它似乎比两个单独的查询和一个QoQ要简单得多。

虽然CF不允许在Comed cfquery标记中包含多个数据源,但您应该仍然能够跨数据库连接。见:


假设这对您有效,它似乎比两个单独的查询和一个QoQ更简单。

我会的,并且支持Charlie的答案,但要修复现有代码,您可以尝试替换

'parseInt(get_restrauntInfo.cli_number)'


在您的WHERE子句中。

我会的,并且支持Charlie的答案,但要修复现有代码,您可以尝试替换

'parseInt(get_restrauntInfo.cli_number)'


在您的WHERE子句中。

所以我最终使用的是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>

所以我最终使用的是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>

可悲的是,我已经尝试过了,Coldfusion不喜欢我尝试他们的标记设计。只要查询标记之间的SQL是有效的,Coldfusion就不会在意。你能详细说明什么不起作用吗?错误消息是什么?遗憾的是,我已经试过了,Coldfusion不喜欢我尝试他们的标记设计。只要查询标记之间的SQL是有效的,Coldfusion就不会在意。你能详细说明什么不起作用吗?错误消息是什么?您认为QoQ会比下面我的答案更有效吗?或者基本上是做同样的事情吗?是的,因为在您的答案中,您正在为第一个查询循环的每个迭代进行另一个完整的数据库调用。使用QoQ时,只有2个数据库调用。但是如果你坚持Charlie的建议,你将只有一个查询,这是理想的解决方案。你认为QoQ会比下面我的答案更有效吗?或者基本上是做同样的事情吗?是的,因为在你的答案中,你会为第一个查询循环的每次迭代进行另一次完整的数据库调用。使用QoQ时,只有2个数据库调用。但如果你坚持查理的建议,你只会有一个问题,这是理想的解决方案。