我需要一种方法可以从表中选择,如果该表不包含某种类型的数据。SQL Server - 选择不存在的数据
例如,如果我们有一个名为farm
的表和另一个名为animal
的表。现在FarmA包含一只猪和一只山羊,FarmB只包含一只山羊。我想选择所有不含猪的农场。
我第一次尝试是要做到这一点:
SELECT f.* FROM farm f INNER JOIN animal a ON f.Id = a.FarmId WHERE a.Name <> 'pig';
但是因为它包含了山羊,但我不希望它返回回有任何猪养殖场,这仍然返回我回来法尔马。
我试过一些subquerys,并使用not exists
,但也没有工作。我相信这很容易,我只是不能构建我的查询权。
在http://www.codinghorror.com/blog/archives/看看000976.html对不同类型的连接进行简单的视觉解释。 – adrianbanks 2010-02-12 19:59:51
感谢您的链接/现在,我看到它使现在完成的查询/我欣赏它 – 2010-02-12 20:12:42