使用另一个表更新表

时间:2015-09-03 17:58:07

标签: sql ms-access sql-update

我需要从表compression_query_table中选择整个列到Tenth_mile,但是INSERT删除该表中已经不在Compression_query_Table中的列,我无法弄清楚如何在多个列上同时使用UPDATE。

1 个答案:

答案 0 :(得分:0)

考虑到您的session_name是唯一的,您可以为此写两个单独的语句:INSERTUPDATE

更新声明:

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)之前运行更新。

希望这有帮助!