MS Access – 连接
数据库是一组数据表,允许彼此之间建立逻辑关系.您可以使用关系通过它们共有的字段来连接表.表可以是任意数量关系的一部分,但每个关系总是只有两个表.在查询中,关系由加入表示.
什么是加入
连接指定如何组合来自数据库中两个或多个表的记录.从概念上讲,连接非常类似于表关系.实际上,连接是查询与表的关系.
以下是我们将在本章讨论的两种基本连接类型 :
- 内部联接
- 外部联接
这两个都可以从查询设计视图轻松创建.
内部加入
让我们现在了解内部加入 :
- 最常见的连接类型是内连接,它也是默认连接在Microsoft Access中键入.
- 内部联接将仅显示两个表中的联接字段相等的行或记录.
- 此联接类型看起来在那些公共领域和其中包含的数据.它只显示匹配.

外部加入
现在让我们了解一下外部加入是什么&减去;
- 外部联接显示一个表中的所有行,并且只显示联接字段相等的另一个表中的那些行或记录.
- 换句话说,外连接显示一个表中的所有行,只显示另一个表中的相应行.
还有其他加入类型和减号;
左外加和&正确的外部加入
现在让我们了解左外连接和右外连接 :
- 您可以选择显示所有行的表.
- 您可以创建一个左外连接,其中包含来自的所有行第一个表.

- 您可以创建一个包含第二个表中所有行的右外连接.

现在让我们转到创建标签并创建一个查询设计视图.选择 tblProjects 和 tblTasks 并关闭"显示表"对话框,如以下屏幕截图所示.

从 tblProjects 添加 ProjectName 字段,然后 TaskTitle,StartDate 和 Duebate 来自 tblTasks 表.

现在让我们运行查询.

我们只显示一些项目的记录.其中一些项目有很多与该项目相关的任务,这些信息通过 ProjectID 字段相关.
- 当我们在Microsoft Access中创建此查询时,Access正在从我们创建的关系中获取此关系.
- 默认情况下,它是在这两个表之间创建所谓的这两个字段之间的内部联接,这就是它将这些信息从这两个表中联系起来的方式.
- 它只显示匹配项,因此当我们运行此查询时, tblProjects 中列出的许多其他项目都不会作为我们记录集的一部分出现这个查询,这是因为这两个表如何连接在一起,通过内部连接,这也是任何查询的默认连接.
但是,如果你想改变关系,我们假设你要创建一个外连接,或者在其他方面ords,显示 tblProjects 中的所有项目,该表中的每条记录,以及 tblTasks 中的所有任务 - 打开连接属性;我们只需双击关系线就可以做到这一点.

Access将在Join Properties对话框中显示左表名和右表名.
- 左栏name和右列名称以及第一个单选按钮仅包含两个表中的连接字段相等的行,即内连接,这是在创建关系时默认选择的行,在查询中创建连接时但是,你可以改变它.
- 我们还有其他两个选择;我们可以包含来自 tblProjects 的所有记录,只包括来自 tblTasks 的记录,其中连接的字段相等,而且这个记录是Left Outer Join.
- 我们有第三个选项,包括来自tblTasks的所有记录,以及来自tblProjects的那些连接字段相等的记录,这个记录是Right Outer Join.
这些是您可以从设计视图轻松创建的不同类型的连接.让我们选择第二个选项,即左外连接,然后单击确定.
现在让我们看看其他步骤&减去;

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

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

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

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

Self-Joins
自我加入是另一种类型的加入.自联接关联同一表中的匹配字段.例如,查看具有supervisor字段的employee表,该字段引用存储在同一表中另一个字段中的相同类型的数字 - 员工ID.

如果我们想知道Kaitlin Rasmussen的主管是谁,我们将不得不取出存储在该主管领域的号码并进行查找在该员工ID字段的完全相同的表中,以便知道Charity Hendricks是主管.
该表不是关系数据库的理想结构,因为它没有规范化.
如果我们想要创建一个只列出员工姓名及其主管名称的查询的情况,除非我们创建自我加入,否则我们无法轻易查询.
要查看自我加入,请创建一个包含以下字段的表格并输入一些数据.

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

关闭此对话框.
现在,为我们的员工添加名字和姓氏.
<我们现在需要一种方法来创建这个表和它自己之间的关系.为此,我们需要打开 show table对话框并再次添加tblEmployees.
我们在此查询视图中创建了同一个表的另一个副本.现在,我们需要创建自我加入.要做到这一点,请单击 tblEmployees 表中的Supervisor并按住鼠标按钮并将其放在该复制表中 EmployeeID 的顶部 - tblEmployees_1 .然后,从该复制的表中添加名字和姓氏.

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

它显示员工的姓名以及他们的主管姓名.而且,这是您在Microsoft Access中创建自联接的方式.