我的关联筛选器不起作用

您已创建关联筛选器,以便(例如)如果仪表板同时包含“州”和“城市”筛选器,则“城市”筛选器仅显示由“州”筛选器选定的州中的城市。但是

  • 当您应用关联筛选器时,您的卡片显示“无结果”,
  • 您的关联筛选器似乎没有效果,或者
  • 您的关联筛选器小部件未显示已筛选值的下拉列表。

如果您在使用常规筛选器小部件时遇到问题,请参阅本指南。为了解决关联筛选器的问题,您需要清楚地了解它们的工作原理。

连接的仪表板卡片是否使用 SQL 变量?

根本原因:原生/SQL 问题必须具有字段筛选器变量才能进行关联。常规 SQL 变量将不起作用。

采取的步骤:

  1. 更新卡片的查询,将常规变量更改为字段筛选器变量。

请参阅关联筛选器的限制

您是否了解关联筛选器的方向性?

根本原因:关联筛选器是 Metabase 中更复杂的功能之一,许多问题源于对其操作的误解。

采取的步骤:检查您是否理解以下几点,并且您的关联筛选器是否已考虑到这些点进行设置。

  1. 筛选器不属于特定问题。相反,筛选器被添加到仪表板中,其值用于填充问题中的变量。

  2. 为了让 Metabase 显示可能的筛选器值的下拉列表,它必须知道该列对应于一个类别。如果问题是通过笔记本编辑器从表格创建的,这会自动发生,因为 Metabase 了解同步后的表格和列。

  3. 另一方面,如果包含变量的问题是用 SQL 编写的,则问题的作者必须选择“字段筛选器”。此外,为了让 Metabase 显示值的下拉列表,引用的字段必须在表格元数据中设置为类别。

筛选器是否以正确的方向关联?

根本原因:最常见的原因是筛选器关联方向错误。如果您希望筛选器 B 显示的值受筛选器 A 设置的限制,您必须更改筛选器 B 的设置,而不是筛选器 A 的设置——即,下游筛选器具有设置,而不是上游筛选器。

采取的步骤

  1. 移除现有关联并以相反方向创建新关联。

是否有实际行满足完整筛选条件?

根本原因:没有行满足关联筛选器中的所有条件。继续以城市和州为例,如果您手动输入一个不在所选州内的城市名称,则没有记录会满足这两个条件。

采取的步骤

  1. 创建一个只使用第一个筛选器的问题,并检查它是否产生了一些行。(如果它没有,添加第二个筛选器也不会使任何行出现。)
  2. 创建一个您认为应该产生与没有生成任何数据的关联筛选器设置组合相同结果的问题。如果它产生了您期望的结果,请检查是否存在输入错误以及您是否使用了正确类型的连接

所有通过第一个测试的行也通过第二个测试吗?

根本原因:在某些情况下,所有满足第一个筛选器条件的行也满足第二个筛选器条件,因此第二个筛选器没有效果。

采取的步骤

  1. 创建一个直接包含第一个筛选器条件(即在问题中而不是使用变量)的问题,然后添加第二个筛选器条件。如果结果集没有改变,则问题出在逻辑上而不是筛选器上。

关联筛选器小部件是否显示已筛选值的下拉列表?

根本原因:为了让关联筛选器小部件将正确的子集值显示为下拉列表,必须设置明确的外键定义——仅关联筛选器本身并不能让 Metabase 了解这种关系。

采取的步骤

  1. 检查 Metabase 数据库的表格元数据是否包含外键关系。

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗?提出更改。
© . This site is unofficial and not affiliated with Metabase, Inc.