我正在尝试编写一个查询,该查询将返回哪些主机缺少某个软件:
Host Software
A Title1
A Title2
A Title3
B Title1
B Title3
C Title4
C Title3
如何查询哪些主机缺少Title2(应该是B和C)?我已经尝试过使用 COUNT 进行 GROUP BY、HAVING 和子查询,但我似乎没有正确的想法。
最佳答案
我认为更简单的方法是:
select software
from HostSoftware hs
group by software
having max(case when software = 'Title2' then 1 else 0 end) = 0
这不需要相关子查询。而且,它应该会在大多数数据库上产生更好的执行计划。
关于类似 "not having"的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772631/