У меня есть задача обновить/вставить некоторые поля в две разные таблицы. Прежде чем запустить свое обновление, я должен получить значения из моего запроса и поместить их в структуру, где одним из моих значений должен быть ключ. Мой запрос выглядит следующим образом:Строить структуру и затем заполнить значениями из запроса?
<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>
Если кто-то может помочь с этим кодом, пожалуйста, дайте мне знать. Обычно я использую массивы, но на этот раз я должен использовать struct по другим причинам. Спасибо.
фразы, как «не работает» очень неоднозначно. Каков фактический результат кода выше? Что вы ожидали вместо этого? * Прежде чем я запустил мое обновление, мне нужно получить значения из моего запроса и поместить их в структуру. * Просто любопытно, но зачем это нужно? Причина для запроса - это похоже на возможное осложнение. – Leigh
Я просто получил ошибку на экране. Почему я хочу поместить их в структуру до запуска обновления? Я должен, потому что значения нужно сравнивать с записями из CSV-файла, а затем я должен проверить, совпадают ли они, если они создают список для значений, которые соответствуют, а затем используют этот список для обновления/вставки. –
Предлагаю совершенно другой подход. Начните с загрузки файла csv в отдельную таблицу. Независимо от того, сделано это с ColdFusion или без него, это не имеет значения. Затем используйте комбинацию промежуточных таблиц и sql-запросов, чтобы определить, какие данные должны быть записаны, а затем записать необходимые данные. –