Sat*_*Che 1 coldfusion coldfusion-10 qoq lucee
我在本地CF和Lucee服务器中比较了以下查询.ColdFusion服务器抛出QoQ运行时错误.但是,当我在Lucee中执行相同的查询时,它会返回所需的查询结果.
<cfquery name="getusers" datasource="myDSN">
SELECT
UC.UserContactName, U.UserID
FROM Users U
INNER JOIN UserContacts UC ON U.UserID = UC.UserID
WHERE U.UserID in (99,52,41,76,15)
</cfquery>
<cfquery name="getContactName" dbtype="query">
SELECT UserContactName FROM getusers
WHERE U.UserID = <cfqueryparam value="76" cfsqltype="cf_sql_integer">
</cfquery>
<cfdump var="#getContactName#" />
Run Code Online (Sandbox Code Playgroud)
CF服务器在上面的代码上抛出此错误,因为它考虑了别名:
选定的列引用U.UserID与FROM表列表中的任何表都不匹配.
但是,Lucee服务器不考虑别名,run运行上面没有错误.有谁知道为什么Lucee服务器不考虑QoQ列别名?请分享您对此的想法或建议.
在getusers查询结果中的列:
UserContactName | UserID
QoQ getusers不再存储任何与表相关的信息.如果您引用U(如U.UserID),ACF期望QoQ中的(新)引用能够解析U甚至意味着什么.
另一方面,Lucee存储这些信息并可以使用别名来解决它.您可以检查源代码如何解析QoQ语句.
无论Lucee的功能如何,我建议在QoQ语句中删除以前的别名.当您的查询转储甚至没有提示您存储的别名时,请考虑调试QoQ语句.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |