试一试!
有时,你希望在查询中查看一个表中的所有记录以及另一个表中的匹配记录。 若要执行此操作,请创建外部联接。
内部联接仅在两个已连接数据源都有匹配 ID 时才显示数据。 例如,若要显示已出售的产品和数量,可在“产品”表和“订单明细”表之间创建内部联接。 运行查询时,将仅返回订单中出现的产品,即两表中都显示的产品。
相反,外部联接将返回一个数据源中的所有数据和另一个表或数据源中的部分数据。
例如,若要查看尚未出售的产品,可创建一个查询,用于显示“产品”表中的产品 ID 和“订单明细”表中任何匹配的订单 ID。 在“订单明细”表中没有匹配记录的产品将只返回产品名称,不返回“订单 ID”字段的值。
左外部联接和右外部联接
在外部联接中,显示所有记录的表称为基准表。 仅显示部分(匹配)记录的表称为辅助表。
“联接属性”对话框介绍使用不同类型的联接将看到的内容:
假设你创建了一个查询来显示客户已购买的产品。 输出字段有“产品名称”、“订单 ID”和“数量”。
-
内部联接。 仅包括两表中的联接字段相等的行(记录),例如,具有与其相关联的订单的产品。
-
左外部联接。 在“左表名称”下包括表中的所有记录,以及“右表名称”下表中联接字段相等的记录,例如,所有订单,但仅包含具有关联的产品的订单的数量和产品 ID。
-
右外部联接。 在“右表名称”下包括表中的所有记录,以及“左表名称”下表中联接字段相等的记录,例如,所有产品,即使没有订单,在这种情况下,“订单 ID”和“数量”字段中会显示空白值。
从示例中可以看出,了解哪个表在左侧和哪个表在右侧很重要,实际情况可能与查询窗口中表格排列顺序不同。 若要了解将从查询获得的数据,请仔细阅读“联接属性”对话框中的文字。
1.添加数据源
-
选择“创建”>“查询设计”。
添加所需的所有表和查询作为数据源。 (别担心。 如果忘记了,以后仍有机会添加更多数据源。)
如果 Access 检测到或推导出数据源关系,可能将其显示出来。
2.添加联接
-
如果看不到源之间的关系,请添加联接。 将所需字段从一个数据源拖动到另一个数据源中的对应字段。 从其中拖动字段的表将显示在“联接属性”对话框中的左侧。 Access 默认创建内部联接。 如需创建外部联接,请更改其类型。
3.更改联接
-
双击表示要更改的联接的线条。
-
在“联接属性”对话框中,选择第二个或第三个选项以创建外部联接。 然后,选择“确定”。
请注意哪个表是基表(将显示其中所有记录)。
4.完成查询
按照创建查询的常规步骤进行操作:添加输出字段、添加任意条件,然后运行或保存查询。 若要了解如何操作,请参阅创建基本查询。