联接数据
您可以联接数据将当前数据与另一个表,甚至与一个已保存的问题联接起来。
单击“联接数据”按钮添加联接步骤后,您需要选择要联接的数据(来自同一数据库)。您只能选择与您的起始数据来自同一数据库的表和已保存问题。
接下来,您需要选择要联接的列。这意味着您从第一个表选择一列,从第二个表选择一列,联接会将两列值相等的所有行连接在一起。一个非常常见的例子是在每个表中使用 ID 列进行联接,因此如果您碰巧选择了在表之间存在外键关系的表进行联接,Metabase 将自动为您选择相应的 ID 列。在联接步骤的末尾,有一个Columns
按钮,您可以单击它来选择要从联接数据中包含哪些列。
默认情况下,Metabase 将执行左外联接,但您可以单击 Venn 图标来选择不同类型的联接。并非所有数据库都支持所有类型的联接,因此 Metabase 将只显示您正在使用的数据库支持的选项。
以下是基本的联接类型
- 左外联接:选择表 A 中的所有记录,以及表 B 中满足联接条件的记录(如果有)。
- 右外联接:选择表 B 中的所有记录,以及表 A 中满足联接条件的记录(如果有)。
- 内联接:仅选择表 A 和表 B 中满足联接条件的记录。
- 全外联接:选择两个表中的所有记录,无论是否满足联接条件。
左外联接示例:如果表 A 是“订单 (Orders)”表,表 B 是“客户 (Customers)”表,并且假设您执行联接,其中“订单”表中的customer_id
列与“客户”表中的ID
列相等,当您执行左外联接时,结果将显示您所有订单的完整列表,并且每个订单行也将显示下该订单的客户的列。由于一个客户可以下许多订单,因此给定客户的信息可能会在不同的订单行中重复多次。如果给定订单没有对应的客户,则将显示订单信息,但该行的客户列将为空白。
多阶段联接
在许多情况下,您可能有表 A、B 和 C,其中 A 和 B 有连接,B 和 C 有连接,但 A 和 C 没有。如果您想将 A 联接到 B 再联接到 C,您所要做的就是添加多个联接步骤。点击“联接数据”,将表 A 联接到表 B,然后点击已完成的联接块下方的“联接数据”步骤以添加第二个联接步骤,并将上次联接的结果联接到表 C。
根据多个条件联接
您的联接还可以包含多个条件来细化结果。Metabase 将使用AND
运算符组合多个条件。
使用不同运算符联接
您可以根据比较条件联接表,例如:
=
(等于)≠
(不等于)>
(大于)≥
(大于或等于)<
(小于)≤
(小于或等于)
延伸阅读
阅读其他 Metabase 版本的文档。