MS Access - 无与伦比的查询向导


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

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

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

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

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

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

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

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

无与伦比

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

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

客户表

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

订单表

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

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

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

客户ID

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

选定的文件

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

第一个订单

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

无匹配

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

列出的客户

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

一片空白

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