如何使用 insert into 和 join together
How to use insert into and join together
我想做的是我有 2 tables t1
和 t2
。 t1
是主要的 table,来自 t2
的信息每天都被插入到 t1
中。
我正在尝试使用 insert 和 join 在一起,这样 t1
和 t2
中的所有匹配数据就不会再次插入到 t1
中。
我只想将 table t2
中的唯一项目插入 t1
。
Table T1:
Date Details
-------------------------------
01-02-2021 11.02 completed
01-02-2021 01.30 cancelled
Table 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
我建议你使用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
当您想要 return 其他列(在 SELECT 列列表中)在匹配表的列之上时,Left Join 方法很有用。
如果您想要过滤表的所有输出列,则 Except 方法更适合。
我想做的是我有 2 tables t1
和 t2
。 t1
是主要的 table,来自 t2
的信息每天都被插入到 t1
中。
我正在尝试使用 insert 和 join 在一起,这样 t1
和 t2
中的所有匹配数据就不会再次插入到 t1
中。
我只想将 table t2
中的唯一项目插入 t1
。
Table T1:
Date Details
-------------------------------
01-02-2021 11.02 completed
01-02-2021 01.30 cancelled
Table 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
我建议你使用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
当您想要 return 其他列(在 SELECT 列列表中)在匹配表的列之上时,Left Join 方法很有用。
如果您想要过滤表的所有输出列,则 Except 方法更适合。