Access - Join(连接)

  • 简述

    数据库是允许彼此建立逻辑关系的数据表的集合。您可以使用关系通过它们共有的字段来连接表。一个表可以是任意数量的关系的一部分,但每个关系总是恰好有两个表。在查询中,关系由Join.
  • 什么是 Join

    连接指定如何组合数据库中两个或多个表中的记录。从概念上讲,连接与表关系非常相似。实际上,联接是查询与表的关系。
    以下是我们将在本章中讨论的两种基本连接类型 -
    • 内连接
    • 外连接
    两者都可以很容易地从queries design view.

    内部联接

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

    外连接

    现在让我们了解什么是Outer Join是 -
    • 外连接显示一个表中的所有行,仅显示另一个表中连接字段相等的行或记录。
    • 换句话说,外连接显示一个表中的所有行,只显示另一个表中的相应行。
    外连接
    还有其他连接类型 -
  • 左外连接和右外连接

    现在让我们了解Left Outer JoinRight Outer Join
    • 您可以选择将显示所有行的表格。
    • 您可以创建一个左外连接,它将包括第一个表中的所有行。
    左连接
    • 您可以创建一个右外连接,它将包括第二个表中的所有行。
    右连接
    让我们现在去Create选项卡并从Design View. 选择tblProjectstblTasks并关闭 Show Table 对话框,如下面的屏幕截图所示。
    任务
    添加ProjectName场从tblProjects, 和TaskTitle, StartDateDueDatetblTasks桌子。
    添加项目名称
    现在让我们运行查询。
    项目详情
    我们只显示来自几个项目的记录。其中一些项目有很多与该项目相关的任务,这些信息通过ProjectID场地。
    • 当我们在 Microsoft Access 中创建此查询时,Access 将从我们创建的关系中获取此关系。
    • 默认情况下,它正在创建所谓的Inner Join between these two fields,在这两个表之间,这就是它如何将这两个表中的这些信息联系在一起。
    • 它只向我们显示匹配项,因此当我们运行此查询时,会列出很多其他项目tblProjects这不会作为我们在此查询中设置的记录的一部分出现,这是因为这两个表是如何通过该内部联接连接在一起的,这也是任何查询的默认联接。
    但是,如果你想改变关系,假设你想创建一个外部连接,或者换句话说,显示所有项目tblProjects,该表中的每条记录,以及来自的所有任务tblTasks— 打开连接属性;我们可以简单地通过双击关系线来做到这一点。
     Join属性
    Access 将在“连接属性”对话框中显示左表名和右表名。
    • 左列名称和右列名称以及第一个单选按钮仅包括两个表中的连接字段相等的行,即内部连接,这是在创建关系时默认选择的,在创建连接时在查询中,但是,您可以更改它。
    • 我们还有另外两个选择;我们可以包括所有记录tblProjects,并且只有那些记录来自tblTasks其中连接的字段是相等的,这个是左外连接。
    • 我们有第三种选择,包括来自 tblTask​​s 的所有记录,并且只包括来自 tblProjects 的那些连接字段相等且此为右外连接的记录。
    这些是您可以从设计视图轻松创建的不同类型的连接。让我们选择第二个选项,即 Left Outer Join,然后单击Ok.
    现在让我们看看其他步骤 -
    其他步骤
    当你看关系线时,你会看到一个小箭头指向ProjectIDtblTasks. 运行此查询时,您将看到以下结果。
    箭头指向结果
    正如你所看到的,它向我们展示了每个项目的名称,无论它是否有相关的任务。您还将看到一堆空字段。所有这些都将是空白的,因为没有相关信息tblTasks,这些字段来自哪里。让我们现在去Design View再次双击关系线。
    相关任务
    在 Join Properties 对话框中,选择 Right Outer Join 的第三个选项,然后单击Ok.
    其他步骤
    现在看看我们的关系线。你会看到一个小箭头现在指向ProjectIDtblProjects. 运行此查询时,您将看到以下结果。
    关系线
  • 自联接

    自联接是另一种联接类型。自联接关联同一个表中的匹配字段。例如,查看带有主管字段的员工表,该表引用存储在同一个表的另一个字段中的相同类型的数字——员工 ID。
    自 Join
    如果我们想知道 Kaitlin Rasmussen 的主管是谁,我们必须获取存储在该主管字段中的号码并在该员工 ID 字段的完全相同的表中查找它,以便知道 Charity Hendricks 是主管。
    该表不是关系数据库的理想结构,因为它没有规范化。
    如果我们想创建一个只列出员工姓名和主管姓名的查询,那么除非我们创建一个自联接,否则我们没有简单的方法可以查询它。
    要查看自联接,请创建一个包含以下字段的表并输入一些数据。
    创建表
    在这里,我们要再次创建一个列表,其中包含员工的名字,然后是主管的姓名。让我们从query design view.
    现在,添加tblEmployees表。
    添加 TblEmployees
    关闭此对话框。
    现在,为我们的员工添加名字和姓氏。
    员工姓名
    我们现在需要一种方法来创建该表与其自身之间的关系。为此,我们需要打开the show table dialog box并再次添加 tblEmployees。
    显示表格对话框
    我们在这个查询视图中创建了同一个表的另一个副本。现在,我们需要创建 Self-join。为此,请单击主管tblEmployees表格并按住鼠标按钮并将其放在表格顶部EmployeeID在那个复制的表格中——tblEmployees_1. 然后,添加该复制表中的名字和姓氏。
    创建自联接
    现在让我们运行您的查询,您将看到以下结果。
    显示名称
    它显示员工的姓名以及他们的主管姓名。而且,这就是您在 Microsoft Access 中创建自 Join的方式。