[英]insert records except in sql server
我有兩個表t1和t2。 t1具有10k記錄,t2具有2k記錄。 t2中有2k條記錄存在於t1中。 我希望從t1獲得8k條不同的記錄,而在t2中則沒有。
我這樣做如下:
select id, second_telphon from t1
except
select id, second_telphon from t2
但是,我仍然得到所有的10k記錄。 “ except”關鍵字不起作用嗎?
我該如何實現?
您可以執行聯接以從表中獲取唯一數據。
像表t1和t2一樣,您都可以執行左連接或右連接。
例:
SELECT T1.*
FROM T1
WHERE NOT EXISTS(SELECT NULL
FROM T2
WHERE T1.ID = T2.ID
AND T1.Date = T2.Date
AND T1.Hour = T2.Hour)
OR .
SELECT T1.*
FROM T1
LEFT JOIN T2
ON T1.ID = T2.ID
AND T1.Date = T2.Date
AND T1.Hour = T2.Hour
WHERE T2.ID IS NULL
嘗試這個:
SELECT *
FROM T1
WHERE NOT EXISTS(SELECT id,second_telphon FROM t2)
如果ID是唯一值,請嘗試以下操作:
SELECT *
FROM T1
WHERE ID NOT IN(SELECT ID FROM t2)
您可以嘗試合並,然后再進行聚合,以限制第一張表中未與第二張表重復的記錄:
SELECT id, second_telphon
FROM
(
SELECT id, second_telphon FROM t1
UNION ALL
SELECT id, second_telphon FROM t2
) t
GROUP BY id, second_telphon
HAVING COUNT(*) = 1;
如果定義為id
second_telphon
對的記錄在聯合之后僅具有一個記錄計數,則表明該記錄對於第一個表是唯一的。
只是做左加入
select t1.id,t1.second_telphon from t1
left join t2 on
t1.id = t2.id
and t1.second_telphon =t2.second_telphon
where t2.id is null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.