我的关联筛选器不起作用

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

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

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

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

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

解决步骤:

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

参阅关联筛选器的限制

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

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

解决步骤:检查您是否理解以下几点,并确保您的关联筛选器已根据这些要点进行设置。

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

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

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

筛选器关联方向正确吗?

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

解决步骤

  1. 移除现有关联,并创建一个方向相反的新关联。

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

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

解决步骤

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

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

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

解决步骤

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

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

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

解决步骤

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

阅读其他Metabase 版本的文档。

© . All rights reserved.