Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access2007

access 2007比较两个表并只查找匹配的数据

时 间:2008-04-05 09:17:16
作 者:Microsoft   ID:11  城市:上海  QQ:3002789054点击这里给麥田发消息
摘 要:比较两个表并只查找匹配的数据
正 文:

有时候,您可能仅在以下情况下想要查阅一个表中的记录:当另一个表中有包含一个或多个具有匹配数据的字段的相应记录时。例如,您可能想要查阅员工中至少处理了一个订单的员工记录,以确定哪些员工有资格获得奖金。或者,您可能想要查阅与某个员工居住在同一个城市中的客户的联系信息,以便安排员工与客户进行面谈。

如果您想要比较两个表并查找匹配的数据,您可以执行以下两项操作当中的任意一项:

  • 创建一个查询,该查询联接每个表中包含相应信息的字段。方法是:使用现有关系,或使用您为该查询创建的联接。这种方法的性能(查询返回结果的速度)最佳,但是您不能联接具有不同数据类型的字段。
  • 创建一个查询,该查询通过使用一个字段作为另一个字段的条件来比较字段。使用一个字段作为另一个字段的条件通常比使用联接速度慢,因为联接在读取基础表之前就从查询的结果中排除了某些行,而条件是在读取了基础表之后才应用于查询结果的。但是您可以使用一个字段作为字段条件来比较具有不同数据类型的字段,这一点无法使用联接来实现。

 

本文讨论如何比较两个表以识别匹配的数据,并提供可用于示例过程的示例数据。

本文不讨论重复数据及其影响。有关查找、隐藏或消除重复数据的详细信息,请搜索“帮助”,或者使用请参阅部分中的链接。


使用联接来比较两个表

要使用联接来比较两个表,您需要创建一个包括这两个表的选择查询。如果在两个表间还没有关于包含相应数据的字段的现有关系,您需要用您想要检查匹配数据的字段创建一个联接。您可以创建任意数量的联接,但是每对联接的字段的数据类型必须相同或兼容。

假设您是某大学的制度研究员,您想要了解最近数学系的课程变更对学生成绩有何影响。您尤其关心数学专业学生的成绩。您已经有存储学生专业数据的表和存储课程注册数据的表。成绩数据存储在“课程注册”表中,而学生的专业数据则存储在“学生专业”表中。要了解自从最近的课程变更以来,数学专业的成绩有何变化,您需要查阅在专业表中有相应记录的注册表中的记录。

准备示例数据

在本示例中,您创建一个查询来确定最近数学系的课程变更对数学专业学生的成绩有何影响。您使用以下两个示例表:学生专业和课程注册。将这两个示例表(学生专业和课程注册)添加到一个数据库中。

Microsoft Office Access 2007 提供了若干种方式来将这些示例表添加到数据库中。您可以手动输入数据,可以将每个表复制到电子表格程序(例如 Microsoft Office Excel 2007)中,然后将工作表导入到 Office Access 2007 中,或者您也可以将数据粘贴到文本编辑器(例如记事本)中,然后从得到的文本文件中导入数据。

本部分中的步骤将介绍如何向空白数据表中手动输入数据,以及如何将示例表复制到 Office Excel 2007 中,然后再将这些表导入到 Access 2007 中。有关创建和导入文本数据的详细信息,请参阅文章导入或链接文本文件中的数据

学生专业
学生 ID 入学年份 专业
123456789 2005 数学
223334444 2005 英语
987654321 2005 数学
135791357 2005 历史
147025836 2005 生物
707070707 2005 数学
123456789 2006 数学
223334444 2006 英语
987654321 2006 心理学
135791357 2006 艺术学
147025836 2006 生物
707070707 2006 数学

课程注册
学生 ID 入学年份 学期 课程 课程编号 成绩
123456789 2005 3 数学 221 A
Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

专栏作家