Ms Access 简明教程
MS Access - Unmatched Query Wizard
在 Access 中,还有另一个非常有用的向导,即 Find Unmatched Query Wizard 。查找不匹配查询向导创建一个查询,该查询查找表中没有另一个表中相关记录的记录或行。
正如我们先前讨论的那样,数据如何在查询中连接在一起,以及大多数查询如何查找两个或更多表之间的匹配项。
-
例如,这是 Access 中的默认联接,如果您使用两个表 tblCustomers 和 tblOrders 设计一个查询,并通过 CustomerID 来联接这两个表,则此查询将仅返回匹配的结果。换句话说,就是下过订单的客户。
-
有时,我们不想看到匹配项,例如,我们可能不想看到数据库中的某个客户(尚未下过订单的客户)。
-
这正是查找不匹配项查询所做的。
此类查询还有许多其他可能的用途。
在我们的数据库中,我们可以使用它来查看哪些作者尚未编写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。现在让我们打开包含 Customers 和 Orders 表的数据库;转到“创建”选项卡并单击查询向导按钮。
选择 Find Unmatched Query Wizard 并单击 Ok 。
在此场景中,我们将找出尚未下订单的客户。在第一个屏幕中,它询问包含查询结果记录的表或查询。
我们现在想要 tblCustomers 中的客户列表。选择该选项并单击 Next 。
在以下屏幕中,您需要指定 which table or query contains the related records 。换句话说,您使用哪个表与第一个表进行比较。为此,我们需要找到尚未下订单的那些项目。我们需要选择包含所有订单信息的表 tblOrders 。现在,单击 Next 。
在以下屏幕中,您需要指定两张表中包含哪些信息。
-
这通常是一些主键、外键、字段或关系。
-
如果您在数据库中已有现成的关系,Access 会为您自动选择和匹配这些字段。
-
但是,如果您有其他可以一起联接的字段,并包含类似信息,则也可以在此处进行选择。
此处,我们在“tblCustomers”字段和“tblOrders”字段中默认选择了 CustID。现在,单击 Next 。
在以下屏幕中,您可以选择想要在查询结果中显示的字段。
现在让我们选择所有可用字段并单击双箭头。这将把所有 available fields 移动到 selected fields 区域。现在,单击 Next 。
最后一个屏幕将允许您为查询选择一个名称并单击 Finish 。
这里我们列出了尚未向我们下订单的某个客户。
您还可以了解如何创建该查询。为此,您需要返回到 Design View 。
此向导在 tblCustomer 和 tblOrders 之间创建了 Outer Join ,并且 Is Null 条件已添加到 tblORders 中的 CustID。这样做是为了排除某些记录。在本例中,这些记录是已下达订单或在 tblOrders 中有相关信息的客户。