SQL更新基于其他表中的列

时间:2014-08-28 21:01:17

标签: sqlite

使用SQLite,我试图根据另一个表(两列)更新三列

这三列是(表1): ' AgentCreatedID' ' AgentOwnedID' ' AgentSentID'

另一个表(表2)由' AgentID'组成。和'指定'。

如果三列中的一列中的ID与' AgentID'匹配在第二个表格中,我想要'指定'填充的价值。此表是所有唯一ID和相应名称的列表。每行数据都有一个Creator,Owner和Sender。我需要看看这个人的名称是什么。

在Access中,第一个值看起来像这样。我还需要添加其他两个值。     更新表1     LEFT JOIN Table2 ON Table1.AgentCreatedID = Table2.AgentID     SET raw.AgentCreatedID = [Table2]![指定];

我不确定那是什么!命令是或如何在SQLite中使用。

2 个答案:

答案 0 :(得分:0)

SQLite不支持UPDATE语句中的连接。

您必须使用相关子查询查找新值:

UPDATE Table1
SET AgentCreatedID = (SELECT Designation
                      FROM Table2
                      WHERE AgentID = AgentCreatedID),
    AgentOwnedID   = (SELECT Designation
                      FROM Table2
                      WHERE AgentID = AgentOwnedID),
    AgentSentID    = (SELECT Designation
                      FROM Table2
                      WHERE AgentID = AgentSentID)

答案 1 :(得分:-2)

感叹号用于将工作表名称与该工作表中的引用分开。 Here is Microsoft对单元格引用的解释。

现在您知道[Table2]![Designatio]意味着,您可以简化它以仅使用列名。