使用查询管理数据

创建具有多个数据源的查询

您的浏览器不支持视频。 安装 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

通常,为获取所需答案,应创建从多个表或从表和查询的组合收集信息的查询。

联接入门

有时必须使用来自多个源(表或查询)的数据来解答问题。例如,你可能希望查看某区域中订购某特定产品的客户数量。

当你添加多个数据源时,Access 使用其间的现有确定关系或在其间创建联接以进行查询。联接只是查询中数据源之间的一种关系。

注意: 联接是临时的,且仅与查询相关联。如果你经常在表间创建相同联接,可在其间创建永久关系。

内部联接

大多数联接是内部联接。与其相对的是外部联接,将在创建具有外部联接的查询中进行介绍。

仅当内部联接在一个源中找到与另一个源中数据匹配的记录时,它才会返回后者中的数据。例如,如果查询有关产品和订单的信息,则你只会看到具有匹配订单的产品的数据。

“产品和订单”表的屏幕截图

自联接

自联接联接同一个表或查询的两个副本。当联接的字段中存在匹配值时,使用自联接合并同一表中的记录。

例如,假定你的“员工”表中列出了组织内所有的员工,包括经理。该表包括一个“直接上级”字段,用于存储员工的经理的 ID。

ID

姓氏

名字

直接上级

1

Freehafer

Nancy

5

2

Cencini

Andrew

3

Kotas

Jan

10

4

Sergienko

Mariya

5

5

Thorpe

Steven

2

6

Neipper

Michael

10

7

Zare

Robert

10

8

Guissani

Laura

10

9

Hellung Larsen

Anne

5

10

Dempsey

Molly

3

若要查找某员工经理的姓名,可在表中找到该员工,在“直接上级”字段找到经理 ID,然后在同一“员工”字段中查找该经理的 ID。例如,Nancy 的直接上级是员工 ID 为 5 的经理,即 Steven Thorpe。

若要自动执行此任务,请将“员工”表两次添加到查询,然后创建自联接。第二次添加该数据源时,Access 会在第二个实例的名称中附加_1。例如,如果两次添加“员工”表,则第二个实例将名为“员工_1”。若要显示每个员工的经理姓名,请在“员工”表中的“直接上级”字段和“员工_1”表中的“员工 ID”字段之间创建联接。

1.添加数据源
  • 选择“创建”>“查询设计”。

添加需要用作数据源的所有表和查询。(不要担心。如有遗漏,仍可在稍后添加更多数据源。)

数据源可能包含要显示其中信息的表(例如“产品”表)以及需用作条件的信息的表。

请记住,现有已保存查询也可用作数据源。例如,如果你已创建用于查找给定月份所有订单的查询,请使用该查询以及“产品”表来显示给定月份卖出的所有产品。

2.联接相关数据源
  • 若要自行添加联接,请将一个数据源中的字段拖动到另一数据源中的对应字段中。Access 默认创建内部联接。

对于大多数关系,Access 将创建的内部联接。并且,如果你已指定应实施引用完整性,则也将其包含在内。但在某些情况下,Access 不会创建你所需的联接。例如,如果你将现有查询添加到新查询而未创建关系,则 Access 不会自动创建联接。

3.完成查询
  • 按照创建查询的常规步骤进行操作:添加输出字段、添加任意条件,然后运行或保存查询。若要了解如何操作,请参阅创建基本查询

希望获得更多信息?

Excel 培训

Outlook 培训

本视频将介绍如何使用多个数据源创建选择查询,

如何使用"联接"功能创建多个源之间的匹配项,

以及各种类型的可用联接。

生成使用多个数据源的选择查询所需的步骤与生成使用单个数据源的查询相同。

打开“查询设计器”,选择表或查询,然后添加字段。

但存在一个问题。

在查询多个源中的数据时,需要创建每个源之间的匹配项。

例如,如果想要知道一组订单中有哪些产品,必须将订单与产品匹配。

可使用“联接”功能创建这些匹配项。

“联接”比较两个公共字段中的数据,即每个数据源中一个数据。

联接功能可控制每个字段中数据的匹配方式。

例如,最常见的联接类型仅在另一个字段中找到匹配值时才从字段返回数据,此方法用于查明每个订单中的产品数量。

其他类型的联接返回某个字段中的所有数据,但只返回另一个字段中的匹配数据。

在此示例中,查询会告诉你哪些订单不包含给定的产品。

现在,创建表关系时,Access 还会为每个关系创建联接。

Access 会将关系用作联接模式,因此大多数情况下,联接的字段将成为主键和外键。

但也可以不是。也可以联接不相关的源。

如果有两个相关的源并将它们添加到“查询设计器”中,你将看到类似于关系的内容 - 只是要记住它并不是关系。Access 只会告诉你用作联接模式的关系的类型。

此外,只要表或查询之间有联接,就可添加来自这两个源的字段。

另请注意,我们没有将联接的字段添加到设计网格。无需进行此操作,因为 Access 会在后台添加。

你可以运行查询并得到结果。

现在我们来深入了解联接,因为你需要记住几个要点。

第一,可右键单击或双击联接线,然后选择“联接属性”来设置或更改联接类型。

这些设置用于控制查询中的联接类型,这些是最常见的联接类型。

此选项将创建“内联”。此联接类型返回两个表中的匹配数据。

每次创建关系时,Access 都将创建这种类型的联接。

第二个选项将创建“左外部联接”,这意味着,查询返回左侧表中的所有数据,但只返回另一个表中的匹配数据。

第三个选项将创建“右外部联接”,你也许会猜到将会发生的情况。

该查询返回右侧表中的所有数据,但只返回左侧表中的匹配数据。

如果想要知道还未售出什么产品,你通常会使用外部联接,或更多情况下,在查询未发生的事项时使用。

请记住,这是最常见的 3 种联接类型。也可以使用“交叉联接”和“不等联接”,但这两种联接不太常用。

关于联接的另一个要点是:“关系”和“联接”不是一回事。

“关系”是用于控制引用完整性(即如何添加和删除数据)的一组规则。

“联接”用于控制查询与数据匹配的方式。

但是,两者有点类似。

例如,关系可具有边(一个和多个),联接也可具有边(左边和右边),但仅在查询中使用联接,使用方式与关系中的不同。

例如,可在不损坏数据库的前提下删除联接,但不能对关系这样做。

此外,还可在不存在关系的位置添加联接。

例如,只要表中的字段与查询中的字段具有匹配或兼容的数据类型,就可以将这两个字段联接在一起。

现在,你了解了如何使用联接创建具有多个数据源的选择查询。还了解了如何设置或更改联接类型。并且知道了联接与关系之间的相似点和差异。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×