Postgresql 查找查询的对立面

Postgresql 查找查询的对立面,postgresql,Postgresql,问题:哪些地区(使用名称)没有“采矿和伐木”方面的工作 代码: 上面是我正在运行的代码,它没有显示我想要的内容。共有9个行业,5个独立区域。答案应该是1个地区(“其他”),但上面的代码显示了所有地区,因为所有地区都有其他行业。如果我运行下面的代码: SELECT DISTINCT region.name AS region_name FROM region INNER JOIN division ON region.number=division.region_number INNER JOIN

问题:哪些地区(使用名称)没有“采矿和伐木”方面的工作

代码:

上面是我正在运行的代码,它没有显示我想要的内容。共有9个行业,5个独立区域。答案应该是1个地区(“其他”),但上面的代码显示了所有地区,因为所有地区都有其他行业。如果我运行下面的代码:

SELECT DISTINCT region.name AS region_name
FROM region INNER JOIN division ON region.number=division.region_number
INNER JOIN state ON division.number=state.division_number 
INNER JOIN blse ON state.state=blse.state
WHERE industry = 'Mining and Logging';
我总共有4个地区没有“其他”地区,因为“采矿和伐木”不是该地区的一个行业。我怎样才能得到“其他”呢?我基本上需要这个查询的相反结果,但我被难住了。对于“其他”区域,“挖掘和日志记录”未列为行业,因此我尝试获得正确的查询,以查找未列出“挖掘和日志记录”的所有区域

感谢所有能为我提供的帮助。

解决了这个问题:

SELECT DISTINCT region.name AS region_name
FROM region INNER JOIN division ON region.number=division.region_number
INNER JOIN state ON division.number=state.division_number 
INNER JOIN blse ON state.state=blse.state
WHERE industry != 'Mining and Logging'
EXCEPT
SELECT DISTINCT region.name AS region_name
FROM region INNER JOIN division ON region.number=division.region_number
INNER JOIN state ON division.number=state.division_number 
INNER JOIN blse ON state.state=blse.state
WHERE industry = 'Mining and Logging';

从存在的区域(…)中选择region.name作为区域名称
从不存在的区域(…)中选择region.name作为区域名称不同始终是一个红色标志。为什么不直接使用(不)存在(…)?
SELECT DISTINCT region.name AS region_name
FROM region INNER JOIN division ON region.number=division.region_number
INNER JOIN state ON division.number=state.division_number 
INNER JOIN blse ON state.state=blse.state
WHERE industry != 'Mining and Logging'
EXCEPT
SELECT DISTINCT region.name AS region_name
FROM region INNER JOIN division ON region.number=division.region_number
INNER JOIN state ON division.number=state.division_number 
INNER JOIN blse ON state.state=blse.state
WHERE industry = 'Mining and Logging';