SQLite:从另一个表更新列

时间:2017-11-21 07:29:00

标签: sqlite

我有一张旧桌子和一张新桌子。我需要的是将旧表的uuId复制到新表。

我从其他参考文献中得到了一些答案,但我无法得到理想的答案。

我找到的最接近的答案是:

update table1
set table1.uuid = 
(select table2.uuid from table2 where table1.itemDescription = table2.itemDescription)

当我执行此查询时,它只将旧表的第一个找到的uuid保存到新表中的所有条目。

样本表2(旧表):

uuid|itemDescription
   1|item1
   2|item2
   3|item3

样本表1(新表):

uuid|itemDescription
Null|item1
Null|item2
Null|item3

期望的输出:

uuid|itemDescription
   1|item1
   2|item2
   3|item3

会发生什么:

uuid|itemDescription
   1|item1
   1|item2
   1|item3

2 个答案:

答案 0 :(得分:0)

在SQLite中,不得在SET子句中使用表名:

INFO

答案 1 :(得分:-1)

试试这样:

UPDATE table1
SET table1.uuid = table2.uuid
FROM table2 WHERE table1.itemDescription = table2.itemDescription

不需要子查询,否则您还需要在外部查询中链接项目描述