我想知道是否可以将输出数据放在查询中,例如我有一个查询:
<cfquery name="get_search_results" datasource="#dsn3#">SELECT * FROM SERVICE_GUARANTY_NEW WHERE SERIAL_NO = #get_service.PRO_SERIAL_NO#</cfquery>
并输出:
<cfoutput query="get_service">#get_service.PRO_SERIAL_NO#</cfoutput>
因为你可以看到我在查询中插入输出,它不起作用,我如何以正确的方式把它?请求帮忙!
以防查询get_service输出:
<cfquery name="get_service" datasource="#dsn3#">
SELECT * FROM SERVICE WHERE SERVICE_ID = #attributes.action_id#
</cfquery>
答案 0 :(得分:1)
回答你的问题:你必须使用cfqueryPARAM。如果Serial_NO数据类型是Varchar,它将如下所示:
<cfquery name = "get_search_results" dataSource = "#dsn3#">
SELECT *
FROM SERVICE_GUARANTY_NEW
WHERE SERIAL_NO = <cfqueryPARAM value = "#get_service.PRO_SERIAL_NO#"
CFSQLType = 'CF_SQL_VARCHAR'>
</cfquery>
但我认为将两个sql查询“get_search_result”和“get_service”合并到一个sql中会更好:
SELECT *
FROM SERVICE_GUARANTY_NEW
WHERE SERIAL_NO IN (
SELECT PRO_SERIAL_NO
FROM SERVICE
WHERE SERVICE_ID = #attributes.action_id#
)
使用子查询比重新使用新查询中的一个查询的结果有问题。
答案 1 :(得分:0)
我想你想尝试这样的事情:
<cfquery name="get_service" datasource="#dsn3#">
SELECT #carrythroughVar# as carryThroughVar, * FROM SERVICE WHERE SERVICE_ID = #attributes.action_id#
</cfquery>
类似于select 1
这是未经测试的。
HTH