数据库连接类型

联接是数据库的基本功能,通过它可以根据两个不同表和/或数据库之间的公用字段(也就是,联接条件)将它们的内容合并到一个视图中。 有关更多信息,请参见关于表和数据库联接

当在您的文档中使用来自多个表和/或多个数据库的数据时,必须使用其中一种支持的数据库联接类型来联接这些表和/或数据库。

下面是将在 BarTender 所支持的不同联接类型的示例中参考的两个样表。 表 A 列出了员工及其部门的 ID,表 B 则列出了与每个员工关联的部门名称和部门 ID。 这两个表之间所共有的用作联接条件的公用字段是“部门 ID”。

表 A:

部门 ID

Joe

31

Jane

33

Mark

33

Mary

34

Dan

34

Donna

表 B:

部门 ID

部门名称

31

销售

33

工程

34

办公室

35

市场营销

BarTender 支持以下联接类型:

内部联接是在使用多个数据库中的数据时所支持的唯一联接类型。 此外,Excel、Access 和 MySQL 数据库不支持完整外部联接。

Closed内部连接

内部联接”是最常见的联接命令之一,通常被视为默认的联接类型。 在内部联接中,通过返回和合并针对您指定的联接字段具有匹配值的指定表中的所有行,来创建新的结果。 如果表 A 中的某行和表 B 中的某行之间没有匹配项,就会从结果中忽略该行。 使用我们的样表,将“部门 ID”用作联接条件的内部联接会产生以下结果:

部门 ID

部门名称

Joe

31

销售

Jane

33

工程

Mark

33

工程

Mary

34

办公室

Dan

34

办公室

正如您所看到的,因为表 A 上 Donna 的部门 ID 列为空,所以她不会显示在所生成的内部联接表上。 如果我们为 Donna 指定了在表 B 中列出的部门 ID,她同样不会出现,因为没有任一相应行与她有关联。

空值将与其他值区别对待,并且无法与 0(零)值或者甚至与其他空值进行比较。 因此,内部联接不能返回在联接条件中所使用的字段中包含空值的任何行,因为没有等价的字段值。

Closed左外部连接

左外部联接与内部联接有所不同,即使在右表(表 B)中没有匹配的行,它也会另外返回左表(表 A)中的所有行。那些在右表中没有匹配行的左表中的行在联接结果中列出时带有空值,从而表明在右表中没有匹配行。 在这种情况下,即使员工没有指定的部门,结果集也会列出所有员工,这与下表中的“Donna”情况一样。

部门 ID

部门名称

Joe

31

销售

Jane

33

工程

Mark

33

工程

Mary

34

办公室

Dan

34

办公室

Donna

Closed右外部连接

右外部联接的作用与左外部联接完全一样,只是方向不同,以便即使在左表(表 A)中没有匹配的行,也会在结果集中另外返回右表(表 B)中的所有条目。在这种情况下,即使没有与部门相关联的员工,结果集也会列出所有部门,这与下表中的“市场营销”部门情况一样。

部门 ID

部门名称

Joe

31

销售

Jane

33

工程

Mark

33

工程

Mary

34

办公室

Dan

34

办公室

35

市场营销

Closed完全外部连接

完整外部联接返回一个结果,其中同时列出了右表和左表中的所有行,即使某个行在另一个表中没有匹配值也是如此。 如果某个行在另一个表中没有匹配的行,缺少的值会作为空值返回。 此结果包括“市场营销”部门(尽管它没有员工),包括员工“Donna”(尽管她没有部门)。

部门 ID

部门名称

Joe

31

销售

Jane

33

工程

Mark

33

工程

Mary

34

办公室

Dan

34

办公室

Donna

35

市场营销

相关主题