如果该表不包含某种类型的数据,我需要一种能够从表中进行选择的方法.
例如,如果我们有一个被调用的表farm和另一个被调用的表animal.现在,FarmA包含一只猪和一只山羊,而FarmB只包含一只山羊.我想选择所有不含猪的农场.
我的第一次尝试是这样做的:
SELECT f.*
FROM farm f
INNER JOIN animal a ON f.Id = a.FarmId
WHERE a.Name <> 'pig';
但是这仍然让我回到了FarmA,因为它包含一只山羊,但我不希望它返回任何有猪的农场.
我尝试了一些subquerys并使用not exists但是也没用.我确信这很容易,我无法正确构建我的查询.
select f.*
from Farm f
left outer join (
select FarmID
from Animal
where Name = 'pig'
) a on f.ID = a.FarmID
where a.ID is null
Run Code Online (Sandbox Code Playgroud)