📜  MS Access-加入

📅  最后修改于: 2020-11-20 05:29:51             🧑  作者: Mango


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

什么是加盟

联接指定如何合并数据库中两个或多个表中的记录。从概念上讲,联接与表关系非常相似。实际上,联接用于查询与表的关系。

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

  • 内部联接
  • 外连接

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

内部联接

现在让我们了解内部连接

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

内部联接

外连接

现在让我们了解什么是外部联接

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

外连接

还有其他联接类型-

左外连接和右外连接

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

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

左加入

  • 您可以创建一个右外部联接,其中将包括第二个表中的所有行。

正确加入

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

Tbl任务

tblProjects添加项目名领域,TaskTitle,tblTasks起始日期交货期

添加项目名称

现在让我们运行查询。

项目详情

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

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

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

  • 它仅向我们显示匹配项,因此当我们运行此查询时, tblProjects中列出了许多其他项目,这些项目并未出现在此查询的记录集中,这是因为这两个表是如何连接的通过该内部联接(再次是所有查询的默认联接)一起进行。

但是,如果要更改关系,可以说要创建一个外部联接,或者换句话说,显示tblProjects中的所有项目,该表中的每个记录,以及来自该表的所有任务tblTasks —开放联接属性;我们只需双击关系线即可做到这一点。

加盟物业

Access将在“联接属性”对话框中显示左表名和右表名。

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

  • 我们还有两个选择。我们可以包括tblProjects中的所有记录,并且只能包括tblTasks中连接的字段相等且该字段为“左外连接”的那些记录。

  • 我们有第三个选项,包括来自tblTasks的所有记录,并且仅包括来自tblProjects的那些记录,这些记录的联接字段相等,并且这是Right Outer Join。

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

现在让我们研究其他步骤-

其他步骤

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

箭头指向结果

如您所见,它向我们显示了每个项目名称,无论它是否具有相关任务。您还将看到一堆空字段。所有这些都将是空白的,因为tblTasks中没有相关信息,这些字段来自何处。现在让我们再次进入“设计视图” ,然后双击关系线。

相关任务

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

其他步骤

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

关系线

自我加入

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

自我加入

如果我们想知道Kaitlin Rasmussen的主管是谁,我们将必须拿起存储在该主管字段中的号码,并在该员工ID字段的完全相同的表中查找该号码,以便知道Charity Hendricks是主管。

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

如果遇到一种情况,我们想创建一个只列出雇员姓名和其主管姓名的查询,除非创建了“自我联接”,否则没有简单的方法可以对其进行查询。

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

建立表格

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

现在,添加tblEmployees表。

添加TblEmployees

关闭此对话框。

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

员工姓名

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

显示表格对话框

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

创建自我加入

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

显示名称

它显示雇员的姓名以及主管的姓名。并且,这就是您在Microsoft Access中创建自我联接的方式。