视频:修复“二义性外部联接”错误

视频:

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

在视频中

如果 Access 判断您的查询会因为首先执行哪个联接而给出不同的结果,它会显示“二义性外部联接”消息。要使查询运行,您需要进行一些更改。最佳解决方法通常是拆分查询。即进行设置,使其中至少一个联接在一个较小的“子”查询中执行,然后您将该子查询联接到“父”查询中的其他表或查询。Access 随后首先执行子查询(或查询)中的联接,最后再执行父查询中的联接,从而消除二义性。

根据您的查询中包含的表的数量,您可能需要创建多个子查询来避免二义性外部联接。此视频演示了一个包含三个表的简单示例,其中两个同等联接表被分离出来,放到子查询中,然后在父查询中执行到第三个表的外部联接。此处给出了基本步骤(假定您对创建查询已经非常熟悉):

  1. 新建一个子查询,在其中包含您希望首先联接的表(在本视频中,这些表是公司和员工表)。

  2. 在该子查询中,双击所需的输出字段,以便它们显示在查询网格中。

重要:  确保包括原始查询中的联接字段。在本视频示例中,“公司”已使用“区域 ID”字段联接到“区域”,因此我们将“区域 ID”包括到子查询的查询网格中。

  1. 保存并关闭子查询,然后在“设计”视图中打开原始查询。这将成为父查询。

  2. 删除已添加到子查询的表,然后添加子查询(“设计”>“显示表”>“查询”,或直接将子查询从导航窗格拖入父查询中)。

  3. 在父查询中,按原来的方式建立联接,只不过这次是联接到子查询。

  4. 将子查询中的输出字段添加到查询网格中。

  5. 保存并运行父查询。

二义性外部联接的经验规则

二义性外部联接发生在以下情形中:一个查询中包含两个或更多个联接,其中一个联接是指向一个同等联接的外部联接,或者有两个外部联接彼此指向对方。例如,以下两个联接配置具有二义性,需要拆分为单独的查询:

Table1 --> Table2 --- Table3

Table1 --> Table2 <-- Table3

指向同一个方向的外部联接,或背向其他外部联接或同等联接的外部联接,是可以接受的外部联接:

Table1 --> Table2 --> Table3

Table1 <-- Table2 --> Table3

Table1 <-- Table2 --- Table3

有关构建查询的详细信息,请参阅查询简介创建选择查询

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

此信息是否有帮助?

谢谢您的反馈!

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

×