MS Access - 不匹配项查询向导
在 Access 中,还有另一个非常有用的向导,那就是不匹配项查询向导。 不匹配项查询向导创建一个查询,查找一个表中在另一个表中没有相关记录的记录或行。
正如我们已经讨论的那样,数据如何在查询中连接在一起,以及大多数查询如何查找两个或多个表之间的匹配。
这是 Access 中的默认联接,例如,如果我们设计一个包含两个表 tblCustomers 和 tblOrders 的查询,并通过 CustomerID 连接这两个表, 该查询将仅返回匹配的结果。 换句话说,就是已下订单的客户。
有时我们不想看到匹配项,例如,我们可能不想看到数据库中的任何客户 - 尚未下订单的客户。
- 这正是不匹配项查询向导的作用。
这种查询还有许多其他可能的用途。
在我们的数据库中,我们可以使用它来查看哪些作者尚未编写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。 现在让我们打开包含 Customers 和 Orders 表的数据库; 转到"创建"选项卡,然后单击"查询向导"按钮。
选择查找不匹配的查询向导并单击确定。
在这种情况下,我们会关注那些尚未下订单的客户。 在第一个屏幕中,它询问哪个表或查询包含您想要在查询结果中出现的记录。
我们现在需要来自 tblCustomers 的客户列表。 选择该选项并单击下一步。
在下面的屏幕中,您需要指定哪个表或查询包含相关记录。 换句话说,你用什么表来与第一个表进行比较。 为此,我们需要找到那些还没有下订单的人。 我们需要选择包含所有订单信息的表 - tblOrders。 现在,点击下一步。
在下面的屏幕中,您需要指定两个表中都包含哪一条信息。
- 这通常是某种主键、外键、字段或关系。
- 如果您的数据库中已有关系,Access 将为您选择并匹配这些字段。
- 但是,如果您有其他可以连接在一起的字段,包含类似的信息,您也可以在此处进行选择。
在这里,我们在"tblCustomers"中的字段和"tblOrders"中的字段中默认选择了 CustID。 现在,点击下一步。
在接下来的屏幕中,您可以选择要在查询结果中显示的字段。
现在让我们选择所有可用字段并单击双向箭头。 这会将所有可用字段移动到选定字段区域。 现在,点击下一步。
最后一个屏幕将允许您为查询选择一个名称,然后单击完成。
这里列出了一位尚未向我们下订单的客户。
您还可以查看该查询是如何创建的。 为此,您需要返回到设计视图。
此向导已在 tblCustomer 和 tblOrders 之间创建了一个外部联接,并且Is Null条件已添加到 tblORders 的 CustID 中。 这是为了排除某些记录。 在本例中,是已下订单的客户,或者在 tblOrders 中有相关信息的客户。