Power Query 的 “合并 ”对话框中可用的联接类型之一是 内部联接,它只引入来自左右表的匹配行。 更多信息:合并操作概述
图显示了左侧表格,包含“日期”列、“CountryID”列和“单位”列。 强调的 CountryID 列包含第 1 行和第 2 行中的值 1、第 3 行中的 3 和第 4 行中的 2。 右表包含 ID 和国家/地区列。 强调的 ID 列包含第 1 行(表示巴拿马)中的 3 个值,第 2 行包含 4 个值(表示西班牙)。 前两个表下方的表格包含 Date、CountryID、Units 和 Country 列,但在 Country 列中只有关于巴拿马的一行数据。
本文使用示例数据来演示如何使用内连接进行合并操作。 此示例的示例源表包括:
销售额:此表包括 “日期”、“ CountryID”和 “单位”字段。 CountryID 是一个整数值,表示 Country 表中的唯一标识符。
国家/地区:此表是包含字段 ID 和 Country 的引用表。 ID 字段表示每个记录的唯一标识符。
在此示例中,将这两个表合并,将 Sales 表作为左表,将 “国家/地区 ”表合并为右表。 以下列之间进行了联接。
| Sales 表中的字段 | “国家/地区”表中的字段 |
|---|---|
| CountryID | ID |
目标是创建如下所示的表,其中国家/地区的名称在“销售”表中显示为新的“国家/地区”列。 由于内部联接的工作原理,仅引入来自左表和右表的匹配行。
若要执行内部连接,请执行以下步骤:
- 选择 “销售 ”查询,然后选择“ 合并查询”。
- 在 “合并 ”对话框中的 “右表”下,选择“ 国家/地区”。
- 在 Sales 表中,选择 CountryID 列。
- 在 “国家/地区 ”表中,选择 ID 列。
- 在连接类型部分,选择内部。
- 选择“确定”。
小窍门
仔细查看对话框底部的消息,该对话框底部显示“所选内容与两个表中的 1 行匹配”。此消息对于了解从此作中获得的结果至关重要。
在 “销售 ”表中,有一个 CountryID 为 1 和 2,但在 “国家/地区 ”表中找不到这两个值。 因此,匹配项在左侧(第一个)表中只找到了四行中的一行。
在国家表格中,有国家西班牙,其ID为4,但在销售表中没有CountryID为4的记录。 因此,(第二个)右侧表中的两行中只有一行找到了匹配项。
从新建 的“国家/地区 ”列展开“ 国家/地区 ”字段。 不要选中“ 使用原始列名作为前缀 ”复选框。
执行此作后,生成的表如下图所示。