1

我已经尝试了在这里和其他网站上看到的所有内容。我开始认为用 SQLite3 (V 1.2.2) 和 SQLite (V 3.7.3) 进行更新连接是不可能的。多年来,我一直是 MSSql Server 开发人员。SQLite 是另一种动物。如果我在 TSQL 中具有 Cursor 功能,我会以这种方式处理它。下面的查询基于几个站点上的建议。这是我最新的尝试,但不起作用。

update alertsettings
   set IP_Desc = (select temp_tbl.Import_Rec
                    from alertsettings,
                         temp_tbl
                   where temp_tbl.IPAddress = alertsettings.IPAddress)

这应该根据我看到的示例使用连接到匹配 IP 的适当描述更新每条记录。所有 IP 都是独一无二的。它确实会更新,但更新后所有记录都具有相同的 IP_Desc。在 576 条记录中,它匹配了一条记录。我不确定为什么它应该起作用,因为与正在更新的当前记录没有关系。“选择”加入“选择”而不是“更新”。

谢谢 - Hostdad

4

1 回答 1

0

编写alertsettings.IPAddress时,该值取自与名称匹配的最内层alertsettings。在您的查询中,这是alertsettingsinner 中的 the select,它独立于 external 中的记录update

您实际上并不想要join,您希望子查询仅从另一个表中查找单个值:

update alertsettings
   set IP_Desc = (select Import_Rec
                    from temp_tbl -- no second table here
                   where IPAddress = alertsettings.IPAddress)
于 2013-09-19T16:29:30.810 回答