有人可以幫我一個問題嗎?
我是 SQL 的新手,我想做的是我有 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
uj5u.com熱心網友回復:
我建議你使用 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 列串列中)時,Left Join 方法很有用。
如果您想過濾表的所有輸出列,則方法更適合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382379.html
標籤:sql-server 加入 插入
