MS Access - 不匹配项查询向导

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

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

匹配
  • 这是 Access 中的默认联接,例如,如果我们设计一个包含两个表 tblCustomerstblOrders 的查询,并通过 CustomerID 连接这两个表, 该查询将仅返回匹配的结果。 换句话说,就是已下订单的客户。

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

未下订单
  • 这正是不匹配项查询向导的作用。

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

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

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

不匹配

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

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

客户表

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

TblOrders

在下面的屏幕中,您需要指定两个表中都包含哪一条信息。

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

在这里,我们在"tblCustomers"中的字段和"tblOrders"中的字段中默认选择了 CustID。 现在,点击下一步

CustID

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

选定的文件

现在让我们选择所有可用字段并单击双向箭头。 这会将所有可用字段移动到选定字段区域。 现在,点击下一步

第一订单

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

不匹配

这里列出了一位尚未向我们下订单的客户。

列出的客户

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

为 Null

此向导已在 tblCustomer 和 tblOrders 之间创建了一个外部联接,并且Is Null条件已添加到 tblORders 的 CustID 中。 这是为了排除某些记录。 在本例中,是已下订单的客户,或者在 tblOrders 中有相关信息的客户。