2011-12-16 63 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