我有两个具有相同模式的表。让我们将它们命名为TestTable和TestTableTemp。我需要从TestTableTemp复制两列到TestTable,而不会中断其他数据。 TestTable中的行是TestTableTemp中的行的子集。假设我需要复制的列被命名为列1和列2并且它们具有相同的主键参考列primaryKey。将列数据的子集从一个表复制到另一个表
在MySQL中,我相信这会是这样的或类似的东西来完成:
UPDATE TestTable, TestTableTemp
SET TestTable.Column1 = TestTableTemp.Column1, TestTable.Column2 = TestTableTemp.Column2
WHERE TestTable.primaryKey = TestTableTemp.primaryKey
sqlite的不允许多个表上的更新语句可以定义人们看到他们的参考数据在这里:http://www.sqlite.org/lang_update.html
我能想出的最好的是这样的:
UPDATE TestTable SET
Column1 = (select TestTableTemp.Column1 from TestTableTemp, TestTable where TestTable.primaryKey = TestTableTemp.primaryKey),
Column2 = (select TestTableTemp.Column2 from TestTableTemp, TestTable where TestTable.primaryKey = TestTableTemp.primaryKey)
WHERE EXISTS(select * from TestTableTemp where TestTable.primaryKey = TestTableTemp.primaryKey"
这给了我一个“。”附近的语法错误。我猜这是因为我不能在标量表达式中引用TestTable。
任何人都可以指向正确的方向吗?任何帮助深表感谢。
编辑:
我清理了第二个查询了一下。它似乎只是将Column1和Column2设置为TestTableTemp中该列的第一行。
你有没有找到一个答案题? – DoctorG