跳到主要内容 跳到补充内容

Join

join 前缀可连接加载的表格和现有已命名的表格或最近创建的数据表。

连接数据的效果是通过一组额外的字段或属性(即目标表中尚未存在的字段或属性)来扩展目标表。源数据集和目标表之间任何常见的字段名称都用于计算如何关联新传入的记录。这通常被称为“自然连接”。根据连接关联的唯一性和所采用的连接类型,Qlik 连接操作可能导致生成的目标表具有比开始时更多或更少的记录。

video thumbnail

连接类型

有四种类型的连接:

  • 左连接

  • 内连接

  • 外连接

  • 右连接

不同类型连接操作的示例结果集

不同类型连接操作的示例结果集,包含每次操作后数据表的对比表示。输入由一个目标表和一个传入数据集组成。目标表有两列,包含“Trade ID”和“Asset Class”字段的两行条目。传入数据有两列,包含“Trade ID”和“Exchange”字段的两行条目。左连接保留初始目标表并添加第三列,除了添加其中一个“Exchange”行条目外,其余全部为空。内连接创建一个包含一个 Trade ID 行和第三列的表,同样用于“Exchange”行条目。外连接保留目标表并添加第三列,以及将传入数据集的第二行附加到的第三行。右连接删除目标表的第二行条目,并将其替换为传入数据集第二行条目的信息,在此过程中添加第三列。

左连接

左连接是最常见的连接类型。例如,如果您有一个事务数据集并希望将其与参考数据集结合,您通常会使用 Left Join。您将首先加载事务表,然后加载参考数据集,同时通过 Left Join 前缀将其连接到已加载的事务表上。Left Join 将按原样保留所有事务,并在找到匹配项时添加补充的参考数据字段。

左连接

从高层次概述左连接期间发生的数据组合的图表。

内连接

当您有两个数据集,并且只关心存在匹配关联的任何结果时,请考虑使用 Inner Join。如果未找到匹配项,这将从加载的源数据和目标表中消除所有记录。因此,这可能会使您的目标表中的记录少于连接操作发生之前的记录。

内连接

从高层次概述内连接期间发生的数据组合的图表。

外连接(默认)

当您需要保留目标记录和所有传入记录时,请使用 Outer Join。在未找到匹配项的情况下,每组记录仍会保留,而连接另一侧的字段将保持未填充状态(空值)。

如果省略了类型关键字,则默认连接类型为外连接。

外连接

从高层次概述外连接期间发生的数据组合的图表。

右连接

此连接类型保留即将加载的所有记录,同时将连接目标表中的记录减少为仅在传入记录中存在关联匹配的记录。这是一种小众的连接类型,有时用作将已预加载的记录表缩减为所需子集的一种方法。

右连接

从高层次概述右连接期间发生的数据组合的图表。

交叉连接

信息注释如果连接操作的源和目标之间没有共同的字段名称,则连接将导致所有行的笛卡尔积——这被称为“交叉连接”。

“交叉连接”操作的示例结果集

交叉连接操作(可能涉及任何类型的连接操作)后输入数据与输出的对比。输入是一个目标表和一个传入数据集。目标表由三列组成,包含两行条目。列为“Trade ID”、“Base Currency”和“Amount”。传入数据集有两列(“Trade Currency”和“Rate”)和两行条目。结果表有五列,分别是“Trade ID”、“Base Currency”、“Amount”、“Target Currency”和“Rate”。有四行条目,组合了所有数据。每个“Trade ID”条目有两行,在其他字段中具有不同的数据。

语法和参数

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

参数
参数 说明
tablename 可以将命名的表格与加载的表格进行比较。
loadstatementselectstatement LOADSELECT 语句适用于加载的表格。

相关主题

这些主题可能有助于您使用此函数:

相关主题
主题 描述
使用 Join 和 Keep 合并表格 本主题进一步解释了“连接”和“保留”数据集的概念。
Keep Keep 加载前缀类似于 Join 前缀,但它不组合源数据集和目标数据集。相反,它根据采用的操作类型(内、外、左或右)修剪每个数据集

加载脚本示例 - 左连接

左连接保留主(目标)表中的所有记录,并添加来自第二个(源)表的匹配数据。如果源中没有匹配项,主表的记录仍然会出现,但源表中的字段为空。

加载脚本示例 - 内连接

内连接仅保留两个表中都存在的记录(基于匹配的字段值)。

加载脚本示例 - 外连接

外连接保留两个表中的所有记录。在没有匹配项的地方,字段留空。

加载脚本示例 - 右连接

右连接保留源表中的所有记录,并添加来自目标表的匹配信息。如果目标表没有匹配项,则其字段为空。

故障排除 - 交叉连接

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们!