sql - 构建结构然后填充查询中的值?

标签 sql struct coldfusion structure

我的任务是在两个不同的表中更新/插入一些字段。在我运行我的更新之前,我必须从我的查询中获取值并将它们放在我的值之一应该是键的结构中。我的查询如下所示:

<cfquery name="getRecords" datasource="test">
    Select 
         s.ID
         ,f.USER_ID
         ,s.USER_NUMBER
         ,s.STATUS
         ,f.DINING 
    From USERS s
         Left Outer Join FIELDS f ON s.ID = f.USER_ID   
</cfquery>

我需要将 USER_NUMBER 用作我的结构中的键并存储上述查询中的所有其他值。我将使用此结构比较其他列表中的值,然后构建我将用于更新/插入的最终列表。我尝试了类似下面的代码,但没有成功:

这是一个使用手动查询的独立示例:

<cfset getRecords = queryNew("")>
<cfset queryAddColumn(getRecords, "ID", [1,2,3])>
<cfset queryAddColumn(getRecords, "USER_ID", ["userA","userB","userC"])>
<cfset queryAddColumn(getRecords, "STATUS", ["Active","Active","Active"])>
<cfset queryAddColumn(getRecords, "DINING", ["X","Y","Z"])>

<cfset myStruct = StructNew()>

<cfloop query="getRecords">
    <cfset myStruct = [key:#USER_NUMBER#{
                                         id:#ID#
                                         ,userid:##USER_ID
                                         ,status:#STATUS#
                                         ,dining:#DINING#
                                        }]>
</cfloop>

如果有人可以帮助处理此代码,请告诉我。我通常使用数组,但这次由于其他一些原因我不得不使用结构。谢谢。

最佳答案

我相信您只需要将键上移一个级别,这样循环就不会覆盖值。所以尝试这样的事情:

<cfset myStruct = StructNew()>

<cfloop query="getRecords">
    <cfset myStruct[getRecords.USER_ID] = {
        id:getRecords.ID,
        userid:getRecords.USER_ID,
        status:getRecords.STATUS,
        dining:getRecords.DINING
    }>
</cfloop>

然后要访问变量,您可以使用类似的东西:

<cfoutput>#htmlEditFormat(myStruct[1].dining)#</cfoutput>

关于sql - 构建结构然后填充查询中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283822/

相关文章:

SQL 触发器制造麻烦

mysql - 确定 M :N database system 中未使用的值

C 程序可以工作(并提供正确的输出)但无论如何都会崩溃

dictionary - golang struct concurrent read and write without Lock 也运行ok?

coldfusion - Coldfusion 开发版和企业版有什么区别?

java - 是否应该在 Coldfusion 中的应用程序/ session 级别创建大量使用的对象?

mysql - SQL 中的 IF/CASE 语句

c# - DBNull 检查 ExecuteScalar

javascript - 异步加载 Coldfusion javascript?

c# - 结构或深拷贝-C#