如果在另一个表中存在字段,如何排除行? (SQL Server)

时间:2018-04-12 20:27:55

标签: sql sql-server database

如果该行中的某个字段存在于另一个表中,我在排除查询中的行时遇到问题。

例如,

SELECT column1, column2

FROM Table1

让我们说结果是

**column1**      **column2**
   Name1            Name2 

然后在表2中,还有一个column1,它也有Name1值。

如何编辑我的第一个查询以检查Table2,以及它是否在column1下也有Name1,然后排除整行?

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

我会使用not exists

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.column1 = t1.column1
                 );

答案 1 :(得分:1)

我认为使用not in非常简单易读

SELECT t1.column1, t1.column2 FROM Table1 t1
WHERE t1.column1 NOT IN (SELECT DISTINCT t2.column1 FROM Table2 t2)