根据另一个表更新一个表

时间:2018-07-31 13:56:36

标签: sql sql-server coldfusion cfml lucee

我正在使用带有Lucee和SQL Server Management Studio的开发环境。我有两个桌子:

  • 城市-列:城市,州,地区和邮政编码。
  • 信息-列:城市,州,邮政编码

有80,000多个条目Info。我只想更新zip表中的Cities列。 22,000个条目中的每个条目都为空。如果“城市”和“州”的值匹配,则根据Cities将值分配给Info。我还没有弄清楚如何在没有某种搜索价值的情况下进行整个查询。

我已经尝试过以下代码。它在2个转储中从Cities输出10,从Info输出最后一个索引[9]。为什么不显示i的每个迭代?为了遍历整个查询,可能是30,000,但是仍然如何基于Info中的值进行更新,并且即使Info中有多个匹配值,也只能一次执行。另外,如果Info中不存在匹配值,如何不设置任何不正确的信息?

<cfquery name="list" datasource="source">
    SELECT TOP 10 *
    FROM cities
    ORDER BY CITY ASC
</cfquery>

<cfparam name="i" default="1">
<cfloop query="#list#" from="1" to="10" index="i">
  <cfoutput>#list.city[i]#</cfoutput>
  <cfoutput>#list.state[i]#</cfoutput>
</cfloop>
<cfquery name="master" datasource="source">
    SELECT TOP 10 *
    FROM WEBMASTERCOPY
    WHERE STATE = '#list.state[i]#' AND city = '#list.city[i]#'
</cfquery>

2 个答案:

答案 0 :(得分:0)

最终变成这样:

 update Cities
   set Cities.ZIP = Info.ZIP from Info 
   where Cities.STATE = Info.STATE
 and 
Cities.CITY = Info.CITY 

答案 1 :(得分:-1)

尽管可以使用#if targetEnvironment(simulator) self.imagePicker.sourceType = .photoLibrary #else self.imagePicker.sourceType = .camera #endif ,但您不需要ColdFusion。这是MySQL,无论如何:

cfquery

先备份=)