2011-12-16 67 views
1

我有2個表,調用Table1和Table2。表1列是id,名稱,col3。 表2具有列id,名稱,col3。 我想從table1中提取所有記錄,這些記錄是id和name(既滿足條件) 不在Table2中。 如何做到這一點sql - 在sql中雙重檢查狀態

+0

我嘗試了一些事情 SELECT dbo.Table1.ID爲ID,dbo.Table1.Track_Name AS名稱 從dbo.Table1沒有(從表2可以選擇ID) 還需要檢查的名稱,其中名稱應也是在同一時間 – Shah 2011-12-16 11:15:04

+0

添加到您的問題 – 2011-12-16 12:43:25

回答

1

是否低於幫助:

SELECT 
    Table1.ID, 
    Table1.name, 
    Table1.col3, 
    Table2.ID 
FROM 
    Table2 RIGHT JOIN Table1 ON (Table2.name = Table1.name) AND (Table2.ID = Table1.ID) 
WHERE 
    Table2.ID Is Null; 
+0

沒有增益。這是我的第一次嘗試 – Shah 2011-12-16 11:54:59

+0

謝謝我工作正常我沒有寫在我的實際查詢爲空 – Shah 2011-12-22 13:20:08

1

這個怎麼樣...

SELECT t1.* 
FROM Table1 t1 
LEFT OUTER JOIN Table2 t2 
    ON t1.id = t2.id AND t1.name = t2.name 
WHERE t2.id IS NULL 
1

我認爲你需要它不存在於其它值(ID,姓名)表。

SELECT t1.* 
FROM Table1 t1 
LEFT JOIN Table2 t2 
    ON t1.id <> t2.id AND t1.name <> t2.name 
WHERE t2.id is null 
UNION 
SELECT t2.* 
FROM Table2 t2 
LEFT JOIN Table1 t1 
    ON t1.id <> t2.id AND t1.name <> t2.name 
WHERE t1.id is null