我需要从表compression_query_table中选择整个列到Tenth_mile,但是INSERT删除该表中已经不在Compression_query_Table中的列,我无法弄清楚如何在多个列上同时使用UPDATE。
答案 0 :(得分:0)
考虑到您的session_name
是唯一的,您可以为此写两个单独的语句:INSERT
和UPDATE
:
更新声明:
UPDATE Tenth_mile
INNER JOIN compression_query_table cq on Tenth_mile.session_name = cq.session_name
SET Tenth_mile.State = cq.State,
Tenth_mile.route_number = cq.route_number;
插入声明:
INSERT INTO Tenth_mile (session_name, state, route_number)
SELECT session_name
,STATE
,route_number
FROM compression_query_table cq
WHERE NOT EXISTS
(SELECT tm.session_name
FROM Tenth_Mile tm
WHERE tm.session_name = cq.session_name
);
注意:我的机器上没有安装MS-Access,所以我没有 一种测试方法。另外,我会在运行insert语句(aka
upsert
)之前运行更新。
希望这有帮助!