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

Join

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

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

有四种类型的联接:

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

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

当您需要同时保留目标记录和所有传入记录时,请使用 Outer Join。如果未找到匹配项,则仍保留每组记录,而连接另一侧的字段将保持未填充(空)。外部联接通常没有什么实际用途。

此联接类型保留所有将要加载的记录,同时将联接所针对的表中的记录减少到只有传入记录中存在关联匹配的记录。这是一种利基联接类型,有时用于将已预加载的记录表缩减为所需子集。

如果省略类型关键字,则 Inner Join 为默认联接类型。

来自不同类型联接操作的示例结果集

示例结果集来自不同类型的联接操作,每个操作之后都有数据表的前后表示。
信息注释如果联接操作的源和目标之间没有共同的字段名,则联接将导致所有行的笛卡尔乘积,这称为“交叉联接”。

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

在交叉联接操作(可以涉及任何类型的联接操作)之后,输入数据与输出进行比较之前和之后。

语法:  

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

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

这些主题可以帮助您使用此函数:

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

示例 1 - 左联接:使用参考数据集丰富目标表

示例 2 – 内部联接:仅合并匹配记录

示例 3 – 外部联接:合并重叠记录集

示例 4 – 右联结:通过辅助主数据集修剪目标表

本页面有帮助吗?

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