使用查询管理数据

查询不相关的数据源

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

有时,你需要创建一个查询来提取没有直接(一对一或一对多)关系的数据源中的信息。

在查询中使用中间表连接数据源

运行查询时,Access 将使用已创建的表间关系,并推导和创建其他数据源之间的连接。如果查询所需的关系不存在,请将表连接为查询的一部分。

假设你希望查看已收到的不同供应商产品的订单数量。“供应商”表未连接到“采购订单明细”表(包含产品 ID 和数量信息)。但是,“采购订单”表连接到了“采购订单明细”表。

具有或不具有预定义关系的多个表数据源

提示: 如果你需要在所创建的查询之外使用此关系,最好创建一个中间关系以供稍后使用。若要了解如何操作,请参阅创建多对多关系

如果不想在数据库中创建中间表,请将“采购订单”表作为查询中的中间表。将“供应商”表添加到“采购订单”表的左侧,并创建连接。

使用一个表间接连接其他两个表

“采购订单”表连接两个不同的表,即“供应商”表和“采购订单明细”表。使用满足下列条件的字段(如“供应商”表中的“ID”和“采购订单”表中的“供应商 ID”)连接表:

  • 两个字段具有匹配或兼容的数据类型。例如,不能将文本字段连接到数字字段。

  • 这些字段标识每个表中唯一的匹配记录。例如,姓氏并非总是唯一,所以请勿连接两个“姓氏”字段。

  • 这些字段可确保记录结果正确。例如,如果将“供应商 ID”连接到“采购 ID”,则可能获得一些匹配项(当两个 ID 相同时)。但结果没有意义,因为供应商 ID 与采购 ID 无关。更好的选择是将“供应商”表中“ID”连接到“采购订单”表中的”供应商 ID”,这将返回有意义的记录,因为这两个字段都标识供应商。

步骤

无论你在数据库中保存了中间表,还是仅打算在查询中使用中间表,都请按照以下步骤进行操作:

  1. 将中间表添加到查询中未连接的两个表中间。

  2. 使用中间表中创建任何需要的连接。

    连接可以使用任何适当的联接类型,但必须通过满足本模块中前述条件的字段进行连接。

    使用中间表创建所需连接
  3. 完成查询。

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

    注意: 无需将中间表包含在结果中。只需将其作为查询的数据源的一部分,以便 Access 连接数据。

希望获得更多信息?

创建基本查询

通过连接多个数据源来创建查询

创建具有外部联接的查询

Excel 培训

Outlook 培训

有时,你需要查询不相关且没有共享联接的表或其他数据源。可通过两种方式执行该操作。

可使用一个中间表:即,与你想要使用的数据源共享联接的表。

或者,可以添加联接。

让我们从中间表开始。在此示例数据库中,员工必须为每个订单输入状态,但他们有时忘记了这样做。

那么待解答的问题就是:“哪些订单没有状态,哪些员工忘记了输入状态?”

表面看来,我们需要在查询中使用三个表:“员工”、“订单”和“订单明细状态”,因为这三个表对应于我们问题中的数据点:“哪些订单没有状态,哪些员工忘记了输入状态?”

将表添加到查询,可看到这两个表没有联接,但没关系,对吧?我们可以添加联接。

因此,我们加入 ID 字段,运行查询,然后...不执行任何操作。

现在来完成早该完成的任务,并查看表间关系。

执行此操作时,我们看到如下所示的关系链:“员工-订单”、“订单-订单明细”以及“订单明细-订单明细状态”。

“订单”和“订单明细状态”不相关,但“订单明细”和它们都相关。这使得“订单明细”成为中间表。

反过来,这就产生了一条规则:只要中间表是数据源的一部分,即可查询这些不相关的表,并获得有效的结果。

无需在结果包含中间表,但它必须是查询的数据源的一部分。

因此,将“订单明细”添加到查询,保持字段相同,然后运行查询。

筛选空白值,即得出答案。

现在,我们向查询添加联接。若要执行此操作,请记住一些更多的规则。

首先,想要联接的表或查询需要具有数据类型匹配或兼容的字段。

例如,“数字”和“货币”数据类型兼容,但“数字”和“文本”不兼容。

其次,创建的联接仅存在于查询中。你现在创建的不是表关系。

第三,结果应该有意义。例如,如果联接返回订单和公司汽车的数据,你可能应重新开始。

假设我们需要了解哪些客户订购了哪些产品。

将“客户”、“订单”和“订单明细”添加到新查询。现在,我们添加联接。我们将“客户 ID”从“客户”表中拖到“订单”表中的对应字段上。

这是连接线,现在介绍另一条规则:Access 将你拖动的字段放在新联接的左侧。如果这不是你想要的,请选择连接线,按 Delete 键,并重新开始。

注意到这些规则后,我们可以生成查询。从“客户”添加“姓氏”和“名字”,然后从“订单明细”添加“产品 ID”、“订单 ID”、“数量”和“单价”。

运行查询即得到数据。

现在,你已了解用于查询不相关数据源的两种方法:使用中间表或者添加联接,得到问题的答案。

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

此信息是否有帮助?

谢谢您的反馈!

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

×