# 逻辑表格之间的关联

数据库可以包含许多表格。每个表格可视为某些数据的列表，列表中的每条记录均表示某类对象实例。

示例：

如果两个表格为不同数据的列表，例如一个是客户列表，另一个是发票列表，两个表格拥有共同的字段，如客户编号，这通常表明两个表格之间存在关系。在标准 SQL 查询工具中，两个表格几乎应始终联接。

Qlik Sense 脚本中定义的表格被称为逻辑表格。Qlik Sense 依据字段名对表格进行关联，并且在做出选择（如在筛选器窗格中选择字段值）后执行联接。

这意味着关联几乎等同于联接。唯一的差异在于联接是在脚本执行时执行，逻辑表格通常是联接的结果。关联是在逻辑表格创建之后执行，关联始终在逻辑表格之间做出。

四种表格：国家/地区列表，客户列表，交易列表和会员列表，它们通过 Country 和 CustomerID 字段彼此关联。

四种表格：国家/地区列表，客户列表，交易列表和会员列表，它们通过 Country 和 CustomerID 字段彼此关联。

四种表格：国家/地区列表，客户列表，交易列表和会员列表，它们通过 CountryCountry 和 CustomerIDCustomerID 字段彼此关联。 ![Four logical tables associated.](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/ex_gen_Associations.png)

## Qlik Sense 关联与 SQL 自然外部连接的对比

Qlik Sense 关联类似于 SQL 自然外部联接。但是，关联更普遍：SQL 中的外部联接通常是一个表格对于另一个表格的单向投影。关联总是可生成完整的（双向）自然外部联接。

## 关联字段中的频率信息

大多数关联字段的使用均存在一定局限性，即两个或更多表格包含共同字段。当一个字段在多个表格中出现时，则 Qlik Sense 要想知道哪些表格可用于计算数据频率会有困难。

Qlik Sense 可通过分析数据来查看是否有明确的方法可用来确定要计算的主表格（有时存在），但大部分情况下，程序只能对此进行猜测。由于错误的猜测可能是极其危险的（Qlik Sense 可能会出现计算错误），因此程序被设计为不允许在对关联字段的数据解释模糊不清时执行某些操作。

### 关联字段限制

1. 显示字段的筛选器窗格中不可能显示频率信息。
2. 该字段的统计框显示大部分统计量为 n/a。
3. 在图表中，无法创建包含依赖字段的频率信息（如 Sum、Count 函数和 Average）的函数的表达式，除非激活 Distinct 修饰符。每次重新加载之后，Qlik Sense 会扫描所有图表表达式，以查看更改数据结构后是否有任何模糊不清的结果产生。如果发现模糊不清的表达式，则警告对话框会显示，并且表达式也会被禁用。待问题得到纠正后，表达式方可启用。如果启用日志文件，则所有模糊不清的表达式会列在日志内。

#### 解决方法

克服这些限制的方法非常简单。使用新名称超时加载执行频率计数的表格中的字段。然后将新字段用于带频率的筛选器窗格，或者用于统计框或图表中的计算。