MS Access - 不匹配查询向导



在 Access 中,还有一个非常有用的向导,那就是查找不匹配记录查询向导。查找不匹配记录查询向导创建一个查询,用于查找一个表中与另一个表中没有相关记录的记录或行。

正如我们已经讨论过如何在查询中将数据连接在一起,以及大多数查询是如何查找两个或多个表之间的匹配项。

Matched
  • 这是 Access 中的默认连接,例如,如果我们使用两个表tblCustomerstblOrders设计一个查询,并通过 CustomerIDs 连接这两个表,则此查询将仅返回匹配的结果。换句话说,就是那些下过订单的客户。

  • 有时我们不想看到匹配项,例如,我们可能不想在我们的数据库中看到任何客户——那些尚未下过订单的客户。

Not Placed Orders
  • 这正是查找不匹配记录查询所做的。

这种类型的查询还有许多其他可能的用途。

在我们的数据库中,我们可以用它来查看哪些作者尚未撰写项目,或者你可以用它来查看哪些员工尚未选择任何医疗福利。现在让我们打开包含CustomersOrders表的数据库;转到“创建”选项卡,然后单击“查询向导”按钮。

选择查找不匹配记录查询向导并单击确定

Unmatched

在这种情况下,我们将查找那些尚未下订单的客户。在第一个屏幕中,它询问哪个表或查询包含您想要在查询结果中显示的记录。

我们现在需要来自tblCustomers的客户列表。选择该选项并单击下一步

Customers Table

在接下来的屏幕中,您需要指定哪个表或查询包含相关记录。换句话说,您将使用哪个表与第一个表进行比较。为此,我们需要找到那些没有下订单的客户。我们需要选择包含所有订单信息的表——tblOrders。现在,单击下一步

TblOrders

在接下来的屏幕中,您需要指定哪个信息同时存在于两个表中。

  • 这通常是某种主键、外键、字段或关系。
  • 如果您的数据库中存在现有关系,Access 将为您选择并匹配这些字段。
  • 但是,如果您还有其他可以连接在一起的字段,包含类似信息,您也可以在这里选择它们。

在这里,我们默认情况下在“tblCustomers”中的字段和“tblOrders”中的字段中都选择了 CustID。现在,单击下一步

CustID

在接下来的屏幕中,您可以选择要显示在查询结果中的字段。

Selected Files

现在让我们选择所有可用的字段,然后单击双箭头。这会将所有可用字段移动到已选字段区域。现在,单击下一步

First Order

最后一个屏幕允许您为查询选择一个名称,然后单击完成

Without Matching

在这里,我们列出了一个客户,该客户尚未向我们下订单。

Customer Listed

您还可以查看该查询是如何创建的。为此,您需要返回到设计视图

Is Null

此向导在 tblCustomer 和 tblOrders 之间创建了一个外部连接,并且将Is Null条件添加到来自 tblORders 的 CustID。这是为了排除某些记录。在这种情况下,它是那些下过订单或在 tblOrders 中有相关信息的客户。

广告