使用查询管理数据

创建具有外部联接的查询

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

有时,你希望在查询中查看一个表中的所有记录以及另一个表中的匹配记录。若要执行此操作,请创建外部联接。

内部联接仅在两个已连接数据源都有匹配 ID 时才显示数据。例如,若要显示已出售的产品和数量,可在“产品”表和“订单明细”表之间创建内部联接。运行查询时,将仅返回订单中出现的产品,即两表中都显示的产品。

相反,外部联接将返回一个数据源中的所有数据和另一个表或数据源中的部分数据。

例如,若要查看尚未出售的产品,可创建一个查询,用于显示“产品”表中的产品 ID 和“订单明细”表中任何匹配的订单 ID。在“订单明细”表中没有匹配记录的产品将只返回产品名称,不返回“订单 ID”字段的值。

左外部联接和右外部联接

在外部联接中,显示所有记录的表称为基准表。仅显示部分(匹配)记录的表称为辅助表

联接属性”对话框介绍使用不同类型的联接将看到的内容:

三个表及其联接属性的屏幕截图

假设你创建了一个查询来显示客户已购买的产品。输出字段有“产品名称”、“订单 ID”和“数量”。

  1. 内部联接。仅包括两表中的联接字段相等的行(记录),例如,具有与其相关联的订单的产品。

  2. 左外部联接包括左侧表单名称下的表中的所有记录,和右侧表单名称下的表中的联接字段相等的记录,例如,所有订单,以及与产品相关联的订单的数量和产品 ID。

  3. 右外部联接包括右侧名称表下的表中的所有记录,和左侧表单名称下的表中的联接字段相等的记录,例如,所有产品(包括没有订单的产品,其订单 ID 和数量字段将显示为空白值)。

从示例中可以看出,了解哪个表在左侧和哪个表在右侧很重要,实际情况可能与查询窗口中表格排列顺序不同。若要了解将从查询获得的数据,请仔细阅读“联接属性”对话框中的文字。

1.添加数据源

  • 选择“创建”>“查询设计”。

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

如果 Access 检测到或推导出数据源关系,可能将其显示出来。

2.添加联接

  • 如果看不到源之间的关系,请添加联接。将所需字段从一个数据源拖动到另一个数据源中的对应字段。从其中拖动字段的表将显示在“联接属性”对话框中的左侧。Access 默认创建内部联接。如需创建外部联接,请更改其类型。

    两个表之间联接的屏幕截图

3.更改联接

  1. 双击表示要更改的联接的线条。

  2. 在“联接属性”对话框中,选择第二个或第三个选项以创建外部联接。然后,选择“确定”。

    请注意哪个表是基表(将显示其中所有记录)。

    突出显示左侧表单名称的联接属性的屏幕截图

4.完成查询

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

希望获得更多信息?

创建基本查询

Excel 培训

Outlook 培训

让我们看看如何在选择查询中使用左、右外部联接。

外部联接有两个侧面:左侧和右侧,并且它们返回某个表中的所有数据,但仅返回另一个表中的匹配数据。若要了解未发生的事件,外部联接非常有用:例如销售情况不佳的特定商品,或未注册特定课程的学生。

现在稍微添加一点内容。

返回所有数据的表称为“基表”,返回匹配项的表称为“辅助表”。

哪个表是基表,哪个表是辅助表取决于联接的方向。

如果使用右外部联接,那右侧的表是基表。如果使用左外部联接,那左侧的表是基表。

可在“联接属性”对话框中控制是使用左外部联接还是右外部联接。进行选择,然后右键单击或双击连接线...,然后单击“联接属性”...,接着选择第二个或第三个选项。

那么,让我们来看看具体操作:

在“创建”选项卡上,选择“查询设计”。在此处添加“订单明细”和“产品”表。

可看到 Access 将一对多关系用作联接模式,这意味着它是一个内联。

添加“产品名”和“数量”字段,如果运行查询,则仅返回已订购的产品的数据。

我们已了解此情况,因为如果查询返回未订购产品的数据,我们会在这里看到空白记录。

返回“设计视图”,右键单击或双击连接线,然后选择“联接属性”。选择第二个选项,请注意联接线。

箭头会告诉你这是一个外部联接,指向的是辅助表。运行查询,从小到大排序数据,即可了解销售情况不佳的商品。

如果我们更改为右外部联接,会发生什么情况?

进行更改,…运行查询,…获得的结果与内联相同:没有空白记录。

如果看看“联接属性”对话框,就明白原因了。

将返回“订单明细”表中的所有数据,但仅返回“产品”表中的匹配项。换言之,我们只会看到有对应订单的产品,而这正是内联返回的相同结果。

现在,你已了解如何在使用多个数据源的选择查询中使用外部联接。因此,假设你已添加联接,但未获得所需结果,那么可以随时更改这些联接。

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

此信息是否有帮助?

谢谢您的反馈!

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

×