访问不匹配或类似的查询,其中一列不包含或不像另一列

Access Unmatched or similar query where a column does not contain or is not like another column

我想设计一个基本上执行大量 "Not Like "*x*" 的查询,除了我不希望查询包含的所有内容都在另一列中。

我知道我可以通过使用条件并指定 "Not like "*x*" 来一次执行此操作,但我不知道如何对整列数据执行 not like

所以,长版本是我在公司网络的几个不同服务器上托管了一堆摄像机。这些摄像机中的每一个都在同一个子网上,除了 IP 地址的最后一个八位字节之外的所有内容都与服务器匹配。现在,我已经在一个查询中创建了一个字段,该字段删除了我 IP 的最后一个八位字节,所以我现在基本上有一个预制的 IP 范围,其中包含摄像机可能所在的位置。但是,我没有每个摄像头的确切清单 - 也没有真正快速的方法。

我有一个正在处理的问题列表,我注意到问题列表中出现了一些摄像头(基本上 table 包括一堆 IP 地址)。我想从报告中删除所有可能的相机实例。

我见过人们可以比较类似列的设计,但我想做相反的事情。我想生成一个查询,其中不包含相机列中的任何内容。

为此,我将调用具有摄像机范围 Camera Ranges 和字段 Camera Range 的查询。

有什么方法可以做到这一点吗?

我愿意设计查询,甚至可以更改我的 table 以便更轻松地进行查询。

类似于我提供的答案,而不是使用否定选择来测试记录所持有的值是否不像 另一个数据集中的任何记录,更简单的方法是匹配那些 的数据集和 return 那些 不匹配 .

的记录

为此,您可以在 where 子句中使用 left joinis null 条件,例如:

select 
    MainData.*
from 
    MainData left join ExclusionData on 
    MainData.TargetField like ExclusionData.Pattern
where 
    ExclusionData.Pattern is null

或者,如果模式字段尚未包含通配符运算符:

select 
    MainData.*
from 
    MainData left join ExclusionData on 
    MainData.TargetField like '*' & ExclusionData.Pattern & '*'
where 
    ExclusionData.Pattern is null

请注意,MS Access 将无法在查询设计器中表示此类计算的联接,但 MS Access 使用的 JET 数据库引擎仍将能够解释和执行有效的 SQL。