Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

联接表

在实时编辑器中使用键变量组合两个表

说明

联接表任务允许您以交互方式组合两个表,可以是通过执行联接,也可以是水平或垂直串联表。该任务会自动为您的实时脚本生成 MATLAB® 代码。

使用此任务,您可以:

  • 对表执行联接,包括内联和外联,方法是指定键变量,这些表变量的匹配值(又称键值)决定要将哪些行合并到输出表中。

  • 对具有相同行数或变量数的表进行水平或垂直串联。

打开任务

要在 MATLAB 编辑器中将联接表任务添加到实时脚本中,请执行以下操作:

  • 实时编辑器选项卡上,选择任务 > 联接表

  • 在脚本的代码块中,键入相关关键字,例如 jointables。从建议的命令自动填充项中选择联接表

示例

全部展开

此示例说明如何使用联接表实时编辑器任务对两个表执行内联和外联。

首先,加载 orders 表,其中包含订单 ID、客户名称和每次发货对应的订单日期。

load orders

然后加载 items 表,其中包含客户订购的产品,以及该产品的价格和发货状态。和 orders 一样,该表的每行都包含订单 ID。由于客户可以订购多项产品,因此 items 中的多行可以对应于 orders 中的一笔订单。

load items

打开联接表任务。要打开任务,请在代码块中键入关键字 join,并点击菜单中出现的 Join Tables

使用该任务执行 ordersitems内联。当任务打开时:

  1. 分别选择 ordersitems 作为左表和右表。

  2. 选择 OrderID 作为两个表的键变量。

  3. 点击内联按钮。

  4. 要查看此任务生成的代码,请点击显示结果部分下方的小箭头。在本例中,生成的代码是对 innerjoin 函数的调用。

当您执行内联时,输出表仅包括那些同时出现在左表和右表中的键值。

  • 只有值 10375120 同时出现在两个输入表中。因此,输出表只包含这两笔订单的数据。

  • 1037items 中出现多次,每次出现对应一项产品,但在 orders 中仅出现一次。因此,对应于 1037CustomerIDOrderDate 值会在输出中相应复制多次。

接下来,使用该任务执行左外联。外联可以包括仅出现在一个输入表中的键值。例如,左外联包括左表中的所有键值,无论它们在右表是否有相应的匹配项。如果右表中有键值在左表中没有匹配项,则这些键值不会包括在内。

  1. 点击左外联按钮。

  2. 选中合并键变量复选框。默认情况下,外联会将左表和右表中的键变量分别作为单独的变量复制到输出表中。合并键变量,使得输出中只有一个键变量。

  3. 要查看生成的对 outerjoin 函数的调用,请点击显示结果下方的小箭头。

输出表中包括订单 8937 的数据。但是,由于订单 8937items 表中没有项,因此该行的其余部分会填入空值(如 ''NaN<undefined>)。当左表或右表没有与键值相关联的数据时,外联用空值填充表元素。

  • 全外联包括两个表中的所有键值和数据。

  • 左外联包括左表中的所有键值和数据,以及右表中的匹配键值和相关数据。

  • 右外联包括右表中的所有键值和数据,以及左表中的匹配键值和相关数据。

相关示例

参数

从包含工作区中所有非空表和时间表的列表中指定名称。

从包含工作区中所有非空表和时间表的列表中指定名称。

从包含左表或右表变量的列表中指定变量的名称。

  • 左表的下拉列表包含其变量的完整列表。

  • 右表的下拉列表包含变量的子集。右表键变量的列表受限于您在左表中选择的键变量。

当您指定一个变量时,其值将决定要合并左表和右表中的哪些行。要指定多组键变量,请使用 + 按钮。

执行外联时,合并对应的键变量。默认情况下,外联会将左表和右表中的键变量都复制到输出表中。要在输出中将左表和右表中对应的键变量组合成一个变量,请选中此复选框。

另请参阅

| |

在 R2019b 中推出