MSAccess-排除加入w /通配符?

时间:2019-02-22 21:19:40

标签: ms-access

当Title匹配使用以下方法包含在Include表中的子字符串时,我成功地(MSAccess - Query using a Table as Criteria)加入了一个Contacts表:

SELECT Contacts.Title
FROM Contacts 
INNER JOIN Include ON Contacts.Title like '*' & Include.String & '*';

我认为我现在需要更进一步,使用排除表来排除一些标题。示例:上面的方法正确地抓住了“ CEO”,但也抓住了“ CEO Admin Assistant”,这是我不想要的。

以下返回所有行;猜测,因为其使用.AND。不是.OR。比较“排除”列表中的条目。

SELECT Contacts.Title
FROM Contacts 
INNER JOIN Exclude ON Contacts.Title not like '*' & Exclude.String & '*';

任何建议如何使用表格完成所需的排除?

1 个答案:

答案 0 :(得分:1)

在联接条件中使用ArrayList<MenuItem> availableItems = new ArrayList<MenuItem>(items); availableItems.removeif(item -> !item.available()); return availableItems; inner join会产生一对多关系,因为对于“联系人”中的每一行, 很多记录中的联系人记录是 不喜欢 ,而只有一个记录是 就像

相反,如果您想继续使用计算出的联接条件(而不是对子查询使用not likenot in),建议您在排除表上使用not existsleft join子句中的is null条件,以仅选择在“排除”中没有匹配记录的那些记录,例如:

where