SQLite的。 “UPDATE table1 SET column1 =(SELECT column2 FROM table2);”不管用

时间:2013-07-25 13:46:03

标签: sql sqlite

为什么这种结构在SQLite中不起作用:

UPDATE table1 SET column1 = (SELECT column2 FROM table2);

其中column1和column2具有相同的行数和相同的类型。

6 个答案:

答案 0 :(得分:1)

使用common列查找匹配的记录:

UPDATE table1
SET column1 = (SELECT column2
               FROM table2
               WHERE table2.Name = table1.Name)

答案 1 :(得分:0)

它不起作用,因为table1.column1只需要一个值。你实际做的是设置table1.column1 = table2.column2的所有结果。

您可能必须将两个表一起加入公共列或键

答案 2 :(得分:0)

因为嵌套选择可能会返回多行。您尝试将table2中的所有数据放入table1

中的1个元素中

答案 3 :(得分:0)

Column1是否一直在列中获得相同的值?否则,您需要在此处的更新中执行JOIN,并根据连接设置Column1 = Column2。

答案 4 :(得分:0)

您没有链接这两个表 所以它试图将所有column2值放入每个table1行。

将两者连在一起,例如     更新table1 set column1 = column2     来自table2,其中table1.ColumnA = tables2.ColumnA

答案 5 :(得分:0)

你的陈述不起作用的原因是因为你告诉它将column2的所有值都放入table1中的每个column1单元格中。你想要更像的东西:

UPDATE
    table1
SET
    table1.column1 = table2.column2
FROM
    table1
INNER JOIN
    table2
ON
    table1.id = table2.table1_id