我想做的是我有两个桌子-- t1和t2。t1是主表,来自t2的信息每天都被插入到t1中。
我试图使用insert和join在一起,这样t1和t2中的所有匹配数据都不会再次插入到t1中。
我只想将表t2中的唯一项插入到t1中。
表T1:
Date Details
-------------------------------
01-02-2021 11.02 completed
01-02-2021 01.30 cancelled表T2:
Date Details
-------------------------------
01-02-2021 11.02 completed
01-02-2021 01.30 cancelled
02-03-2021 03.30 running
02-03-2021 05.30 failed发布于 2021-12-02 07:02:27
我建议你用EXCEPT
示例:
INSERT INTO T1( [Date], Details )
SELECT [Date], Details
FROM T2
EXCEPT -- This is equivalent to subtracting T1 records from T2 records
SELECT [Date], Details
FROM T1您也可以使用LEFT JOIN来完成它。
INSERT INTO T1( [Date], Details )
SELECT [Date], Details
FROM T2
-- Add all of the columns that you want to match one.
LEFT JOIN T1 ON T2.[Date] = T1.[Date] AND T2.Details = T1.Details
-- This ensures that only records that did not match T1 are returned.
WHERE T1.[Date] IS NULL如果要在要匹配表的列的顶部返回其他列(在SELECT列列表中),则左联接方法非常有用。
如果要对表的所有输出列进行筛选,则方法更适合。
https://stackoverflow.com/questions/70194665
复制相似问题