我有兩個具有相同模式的表。讓我們將它們命名爲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