MS Access - 加入


数据库是数据表的集合,这些数据表之间存在逻辑关系。您可以使用关系通过表的共同字段来连接表。一个表可以是任意数量的关系的一部分,但每个关系始终只有两个表。在查询中,关系由Join表示。

什么是加入

连接指定如何组合数据库中两个或多个表中的记录。从概念上讲,联接与表关系非常相似。事实上,连接之于查询就像关系之于表一样。

以下是我们将在本章中讨论的两种基本连接类型 -

  • 内连接
  • 外连接

这两者都可以从查询设计视图轻松创建。

内部联接

现在让我们了解内连接-

  • 最常见的联接类型是内部联接,它也是 Microsoft Access 中的默认联接类型。
  • 内部联接将仅显示两个表中联接字段相等的行或记录。
  • 此连接类型查看那些公共字段及其中包含的数据。它仅显示匹配项。
内部联接

外连接

现在让我们了解什么是外连接-

  • 外部联接显示一个表中的所有行,并且仅显示另一表中联接字段相等的行或记录。
  • 换句话说,外连接显示一个表中的所有行,而仅显示另一表中的相应行。
外连接

还有其他连接类型 -

左外连接和右外连接

现在让我们了解左外连接右外连接-

  • 您可以选择将显示所有行的表。
  • 您可以创建一个左外连接,它将包含第一个表中的所有行。
左连接
  • 您可以创建一个右外部联接,其中将包括第二个表中的所有行。
右连接

现在让我们转到“创建”选项卡并从“设计视图”创建一个查询。选择tblProjectstblTask​​s并关闭“显示表”对话框,如以下屏幕截图所示。

表任务

添加tblProjects中的ProjectName字段,以及tblTask​​s表中的TaskTitle、StartDateDueDate

添加项目名称

现在让我们运行查询。

项目详情

我们仅显示几个项目的记录。其中一些项目有很多与该项目相关的任务,这些信息通过ProjectID字段相关。

  • 当我们在 Microsoft Access 中创建此查询时,Access 将从我们创建的关系中获取此关系。

  • 默认情况下,它在这两个字段之间、这两个表之间创建所谓的“内部联接”,这就是它如何将这两个表中的信息关联在一起。

  • 它只向我们显示匹配项,因此当我们运行此查询时, tblProjects中列出的许多其他项目没有作为此查询中记录集的一部分出现,这是因为这两个表的连接方式通过内部联接,这又是任何查询的默认联接。

但是,如果您想更改关系,假设您想创建一个外连接,或者换句话说,显示tblProjects中的所有项目、该表中的每条记录以及来自tblTask​​s — 打开连接属性;我们只需双击关系线即可做到这一点。

加入属性

Access 将在连接属性对话框中显示左表名称和右表名称。

  • 左列名称和右列名称以及第一个单选按钮仅包含两个表中的联接字段相等的行,即内部联接,这是创建关系、创建联接时默认选择的行在查询中,但是,您可以更改它。

  • 我们还有另外两个选择;我们可以包含tblProjects中的所有记录,并且仅包含tblTask​​s中连接字段相等的记录,并且该记录是左外连接。

  • 我们还有第三种选择,包括 tblTask​​s 中的所有记录,并且仅包括 tblProjects 中连接字段相等的记录,这就是右外连接。

这些是您可以从设计视图轻松创建的不同类型的连接。让我们选择第二个选项,即“Left Outer Join”,然后单击“确定”

现在让我们看看其他步骤 -

其他步骤

当您查看关系线时,您将看到一个小箭头指向tblTask​​s中的ProjectID。当您运行此查询时,您将看到以下结果。

箭头指向结果

正如您所看到的,它向我们显示了每个项目名称,无论它是否有相关任务。您还会看到一堆空字段。所有这些都将是空白的,因为这些字段来自tblTask​​s中没有相关信息。现在让我们再次转到设计视图并双击关系线。

相关任务

在“连接属性”对话框中,选择第三个选项,即“右外连接”,然后单击“确定”

其他步骤

现在看看我们的关系线。您将看到一个小箭头现在指向tblProjects中的ProjectID。当您运行此查询时,您将看到以下结果。

关系线

自加入

自连接是另一种类型的连接。自联接关联同一表中的匹配字段。例如,查看带有主管字段的员工表,该表引用存储在同一表内另一个字段中的相同类型的数字 - 员工 ID。

自加入

如果我们想知道 Kaitlin Rasmussen 的主管是谁,我们必须获取该主管字段中存储的号码,并在该员工 ID 字段的同一个表中进行查找,才能知道 Charity Hendricks 是主管。

该表不是关系数据库的理想结构,因为它没有标准化。

如果我们想要创建一个查询,仅列出员工姓名及其主管姓名,则没有简单的方法可以查询,除非我们创建自联接。

要查看自联接,请创建一个包含以下字段的表并输入一些数据。

创建表

在这里,我们要再次创建一个列表,其中包含员工的名字,然后是主管的名字。让我们从查询设计视图创建一个查询。

现在,添加tblEmployees表。

添加表员工

关闭该对话框。

现在,添加我们员工的名字和姓氏。

员工姓名

我们现在需要一种方法来创建该表与其自身之间的关系。为此,我们需要打开显示表对话框并再次添加 tblEmployees。

显示表对话框

我们在此查询视图中创建了同一个表的另一个副本。现在,我们需要创建自连接。为此,请单击tblEmployees表中的 Supervisor 并按住鼠标按钮,然后将其放在复制的表 tblEmployees_1 中的EmployeeID正上方。然后,添加复制的表中的名字和姓氏。

创建自加入

现在让我们运行您的查询,您将看到以下结果。

显示名称

它显示员工的姓名以及主管的姓名。这就是在 Microsoft Access 中创建自联接的方法。