我在本地 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#" />
CF 服务器在上面的代码中抛出这个错误,因为它考虑了别名:
选定的列引用 U.UserID 与 FROM 表列表中的任何表都不匹配。
但是,Lucee 服务器不考虑别名,运行上面没有错误。有谁知道为什么 Lucee 服务器不考虑 QoQ 列别名?请分享您对此的想法或建议。