主要内容

内部联接

两个表或时间表之间的内部连接

描述

例子

T.= InnerJoin(Tlefttr创建表或时间表,T.,因为内部联接Tlefttr使用关键变量.两个输入中具有相同名称的所有变量都是关键变量。内部连接将键变量具有匹配值的行组合起来。例如,如果Tleft有变量命名Key1Var1, 和tr有变量Key1Var2, 然后T = innerjoin (Tleft Tright)用途Key1作为一个关键变量。

左右表中键变量的匹配值不必以相同的顺序。内连接可以在两个表的关键变量之间执行一对多匹配的匹配。也就是说,在左表的键变量中发生一次的值可以在右侧表中具有多个匹配。类似地,在右表的键变量中发生一次的值可以在左表中具有多个匹配。

您只能在某些表格和时间表的组合上执行内部连接。

  • 如果Tleft是一张桌子,然后tr必须是一张桌子。内部联接回报T.作为一个表。

  • 如果Tleft那么,有时间表吗tr可以是一张桌子,也可以是一张时刻表。内部联接回报T.作为输入组合的时间表。

行标签的载体Tlefttr可以是关键变量。行标签是表的行名或时间表的行时间。

T.= InnerJoin(Tlefttr名称,价值使用一个或多个指定的附加选项执行内部连接操作名称,价值对论点。

例如,您可以指定要用作键变量的变量。

例子

[T.ileftiright] = InnerJoin(___也返回索引向量,ileftiright中行之间的对应关系T.和行Tlefttr分别。您可以将此语法与前面语法中的任何输入参数一起使用。

例子

全部收缩

创建一个表,Tleft

tleft =桌子([5; 12; 23; 2; 6],...{“麦片”;'比萨';“鲑鱼”;'饼干';'比萨'},...“VariableNames”, {'年龄''最喜欢的食物'})
tleft =.5×2表年龄FavoriteFood  ___ ____________ 12 5{“麦片”}{“披萨”}23{“鲑鱼”}2{‘饼干’}6{'披萨'}

创建一个表,tr,其中有一个变量与Tleft

tright =表({“麦片”;'饼干';'比萨';“鲑鱼”;'蛋糕'},...[110; 160; 140; 367; 243],...{'一种-';' D ';“B”;“B”;'C-'},...“VariableNames”, {'最喜欢的食物'“卡路里”'营养不良'})
Tright =5×3表最喜欢的食品营养品营养____________ ________ ______________ {'饼干'} {'饼干'} {'d'} {'b'} {'b'} {'b'} {'b'} {'b'} 367 {'b'} {'cake'} 243 {'c-'}

使用内部联接函数创建新表,T.,来自表的数据Tlefttr

T = innerjoin (Tleft Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade  ___ ____________ ________ ______________ 110{“麦片”}{“-”}{‘饼干’}160 {' D '} 140{“披萨”}{B}{“披萨”}140 {B} 23 367{“鲑鱼”}{B}

桌子T.按键变量排序,最喜欢的ood

创建一个表,Tleft

tleft =表({“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”, {“Key1”'var1'})
tleft =.5×2表key1 var1 __________ {'a'} 1 {'b'} 2 {'c'} 3 {'e'} 11 {'h'} 17

创建一个表,tr,可变中的常见值Key1表之间的Tlefttr,还包含带有值的行Key1不出席Tleft

tright =表({“一个”“b”' d '“e”}',[4 5 6 7]',...“VariableNames”, {“Key1”'var2'})
Tright =4×2表Key1 Var2  _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7

使用内部联接函数创建新表,T.,来自表的数据Tlefttr.只保留其值在变量中的行Key1匹配。

此外,返回索引矢量,ileftiright中行之间的对应关系T.和行Tlefttr分别。

[t,inleft,iright] = Innerjoin(Tleft,Trik)
T =3×3表Key1 Var1 Var2  _____ ____ ____ {' '} 1 4 {b} 2 5{“e”}11 7
inleft =.3×11 2 4.
iright =3×11 2 4.

桌子T.按键变量中的值排序,Key1,并包含水平串联TLEFT(ILEFT,:)Tright(iright,'var2')

创建一个表,Tleft

TLEFT =表([10; 4; 2; 3; 7],[5; 4; 9; 6; 1],[10; 3; 8; 8; 4])
tleft =.5×3表Var1 Var2 Var3 ____ ____ ____ 10 5 10 4 4 3 2 9 8 3 6 8 7 1 4

创建一个表,tr,第二变量中的公共值作为表的第一变量Tleft

Tright =表([6; 1; 1; 6; 8],[2; 3; 4; 5; 6])
Tright =5×2表var1 var2 ____ ____ 6 2 1 3 3 1 4 6 5 8 6

使用内部联接函数创建新表,T.,来自表的数据Tlefttr.使用第一变量Tleft第二个变量tr作为关键变量。

[t,inleft,iright] = Innerjoin(Tleft,Trik,“LeftKeys”, 1“RightKeys”2)
T =3×4表var1_tleft var2 var3 var3 var1_tright __________ ____ ____ ___________ 2 9 8 6 3 6 8 1 4 4 3 1
inleft =.3×13 4 2
iright =3×11 2 3.

桌子T.只保留与之间匹配的行Tlefttr关于关键变量。

桌子T.包含的水平连接TLEFT(ILEFT,:)Tright(iright,'var1')

创建两个时间表,Tlefttr.它们有一些共同的行,但每个都包括不在其他时间表中的行时间。

Tleft = timestamp ([1;2;4;6]),[1 2 3 11])
tleft =.4×1的时间表时间var1 _____ ____ 1秒1 2秒2 4 sec 3 6秒11
Trik =时间表(秒([2; 4; 6; 7]),[4 5 6 7]')
Tright =4×1的时间表时间var1 _____ ____ 2秒4 4 sec 5 6 sec 6 7 sec 7

结合Tlefttr内部连接。T.匹配具有普通行时间的行。T.不包含任何时刻表中的其他行。

T = innerjoin (Tleft Tright)
T =3×2时间表Time var1_tleft var1_tright ____________________________________ 2 sec 2 4 4 sec 3 5 6 sec 11 6

输入参数

全部收缩

左表,指定为表或时间表。

右图,指定为表或时间表。

名称值对参数

指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“钥匙”,2使用第二个变量Tleft第二个变量tr作为关键变量。

要用作键的变量,指定为逗号分隔的对,由“钥匙”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你不能使用“钥匙”的名称-值对参数“LeftKeys”“RightKeys”名称值对参数。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:“钥匙”,[1 3]使用第一个和第三变量Tlefttr作为关键变量。

例子:'keys',{'x','y'}使用命名的变量XyTlefttr作为关键变量。

例子:'钥匙','行'使用行名称的向量Tlefttr作为关键变量,如果两者都是Tlefttr是带有行名的表。

变量用作键Tleft,指定为逗号分隔的配对组成“LeftKeys”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用“LeftKeys”名称 - 值对参数结合使用“RightKeys”名称值对参数。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。内部联接对基于其订单的对键值。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:'左键',1仅使用第一个变量Tleft作为一个关键变量。

变量用作键tr,指定为逗号分隔的配对组成“RightKeys”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用“RightKeys”名称 - 值对参数结合使用“LeftKeys”名称值对参数。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。内部联接对基于其订单的对键值。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:'lightneys',3中的第三个变量tr作为一个关键变量。

变量Tleft包括在T.,指定为逗号分隔的配对组成“LeftVariables”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用“LeftVariables”包括或排除关键变量,以及从输出中的非键变量,T.

默认情况下,内部联接包括所有变量Tleft

变量tr包括在T.,指定为逗号分隔的配对组成'rightvariables'和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用'rightvariables'包括或排除关键变量,以及从输出中的非键变量,T.

默认情况下,内部联接包括所有变量tr除了关键变量。

输出参数

全部收缩

内连接的Tlefttr,作为表或时间表返回。输出表或时间表,T.,包含每对行的一行Tlefttr在关键变量中共享相同的值组合。如果Tlefttr包含具有相同名称的变量,内部联接中的对应变量名添加唯一后缀T.

一般来说,如果有mTleftNtr然后,所有这些都包含密钥变量中的相同的值组合T.包含m * n该组合的行。

T.是按关键变量中的值排序的,并包含Tleft (ileft LeftVars)Tright(iright,rightvars).默认情况下,左转由的所有变量组成Tleft, 和Rightvars.由所有的onkike变量组成tr.否则,左边的指定的变量“LeftVariables”名称-值对参数,和Rightvars.变量是由'rightvariables'名称值对参数。

您可以存储其他元数据,如描述,可变单位,变量名和行名称T..有关更多信息,请参阅属性部分桌子时间表

索引Tleft,作为列向量返回。的每个元素ileft识别行中的行Tleft这对应于输出表或时间表中的该行,T.

索引tr,作为列向量返回。的每个元素iright识别行中的行tr这对应于输出表或时间表中的该行,T.

更多关于

全部收缩

关键变量

用于匹配和组合输入表之间的数据,Tlefttr

提示

  • 来自输入表或时间表的行标签向量可以是一个键,单独或与其他键变量组合。行标签是表的行名或时间表的行时间。要使用该向量作为键,请将其指定为'排'(对于表的行名称),作为行时间的时间表矢量的名称,或者作为值的名称T..Properties.DimensionNames {1},在那里T.是表还是时间表。

    一般来说,内部联接从输入表复制行标签Tleft到输出表T.

    • 如果Tleft没有行标签,那么T.没有行标签。

    • 如果Tleft有行标签吗内部联接Tleft创建行标签T.

      • 然而,如果两个Tlefttr是表格,但您没有将输入表的行名称指定为键,然后内部联接在?中没有创建行名T.

    的行标签不能执行内部连接Tleft作为左键和一个变量tr作为正确的关键。要执行内部连接,请转换行标签Tleft到表变量并使用新表变量作为键。

扩展功能

也可以看看

||

介绍在R2013B.