为什么这种结构在SQLite中不起作用:
UPDATE table1 SET column1 = (SELECT column2 FROM table2);
其中column1和column2具有相同的行数和相同的类型。
答案 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