如何使用插入和连接在一起
Posted
技术标签:
【中文标题】如何使用插入和连接在一起【英文标题】:How to use insert into and join together 【发布时间】:2022-01-08 15:53:19 【问题描述】:我想做的是我有 2 张桌子 t1
和 t2
。 t1
是主表,来自t2
的信息每天都会插入到t1
。
我正在尝试同时使用插入和连接,以便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
【问题讨论】:
【参考方案1】:我建议你使用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 列列表中)时,左连接方法很有用。
如果您想在所有输出列上过滤表,Except 方法更适合。
【讨论】:
非常感谢您的帮助.. 这个方法对我有用 如果答案有助于您解决问题,请随时将答案标记为已接受。以上是关于如何使用插入和连接在一起的主要内容,如果未能解决你的问题,请参考以下文章
如何将strapi、graphql和postgres连接在一起?