主要内容

innerjoin

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

描述

例子

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

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

只能对某些表和时间表组合执行内部连接。

  • 如果Tleft那么,是一张桌子吗Tright一定是一张桌子。innerjoin返回T作为一个表。

  • 如果Tleft那么,有时间表吗Tright可以是一张桌子,也可以是一张时刻表。innerjoin返回T作为一种投入组合的时间表。

行标号的向量TleftTright可以是关键变量。行标签是表的行名或时间表的行时间。

T= innerjoin (TleftTright名称,值使用一个或多个指定的附加选项执行内部连接操作名称,值对参数。

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

例子

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

例子

全部折叠

创建一个表,Tleft

Tleft =表([5;12;23;2,6],...“麦片”“披萨”“鲑鱼”“饼干”“披萨”},...“VariableNames”, {“年龄”“FavoriteFood”})
Tleft =5×2表年龄FavoriteFood  ___ ____________ 12 5{“麦片”}{“披萨”}23{“鲑鱼”}2{‘饼干’}6{'披萨'}

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

({Tright =表“麦片”“饼干”“披萨”“鲑鱼”“蛋糕”},...(110; 160; 140; 367; 243),...“- - -”' D '“B”“B”“C -”},...“VariableNames”, {“FavoriteFood”“卡路里”“NutritionGrade”})
Tright =5×3表FavoriteFood卡路里NutritionGrade  ____________ ________ ______________ {' 谷物}110{“-”}{‘饼干’}160 {' D '}{“披萨”}140 {B}{“鲑鱼”}367 {B}{‘蛋糕’}243 {' C - '}

使用innerjoin函数创建新表,T,使用表中的数据TleftTright

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

表格T按键变量排序,FavoriteFood

创建一个表,Tleft

({Tleft =表“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”, {“Key1”“Var1”})
Tleft =5×2表Key1 Var1  _____ ____ {' 2 '} 1 {b} {' c '} 3{“e”}11 {' h '} 17

创建一个表,Tright,变量中有公共值Key1表之间的TleftTright,但也包含值为的行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

使用innerjoin函数创建新表,T,使用表中的数据TleftTright.只保留其值在变量中的行Key1匹配。

同样,返回索引向量,ileftiright中行之间的对应关系T和行TleftTright分别。

[T ileft iright] = innerjoin (Tleft Tright)
T =3×3表Key1 Var1 Var2  _____ ____ ____ {' '} 1 4 {b} 2 5{“e”}11 7
ileft =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

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

Tright =表([6;1;1、6、8],[2,3,4,5,6))
Tright =5×2表Var1 Var2 ____ ____ 6 2 1 3 1 4 6 5 8 6

使用innerjoin函数创建新表,T,使用表中的数据TleftTright.使用第一个变量ofTleft第二个变量Tright作为关键变量。

[T ileft iright] = innerjoin (Tleft Tright,“LeftKeys”, 1“RightKeys”, 2)
T =3×4表Var1_Tleft Var2 Var3 Var1_Tright  __________ ____ ____ ___________ 2 9 8 6 3 6 8 1 4 4 3 1
ileft =3×13 4 2
iright =3×11 2 3

表格T仅保留之间匹配的行TleftTright关于关键变量。

表格T包含的水平连接Tleft (ileft:)Tright (iright Var1)

创建两个时间表,TleftTright.它们有一些共同的行时间,但每个也包括其他时间表中没有的行时间。

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

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

T = innerjoin (Tleft Tright)
T =3×2时间表时间Var1_Tleft Var1_Tright  _____ __________ ___________ 2秒2 4 4秒3 5 6秒11 6

输入参数

全部折叠

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

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

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

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

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

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

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

例子:“钥匙”,{' X ', ' Y '}使用命名为XYTleftTright作为关键变量。

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

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

你必须使用“LeftKeys”名称-值对参数与“RightKeys”名称-值对的论点。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。innerjoin根据键值的顺序对键值进行配对。

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

例子:“LeftKeys”,1中只使用第一个变量Tleft作为关键变量。

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

你必须使用“RightKeys”名称-值对参数与“LeftKeys”名称-值对的论点。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。innerjoin根据键值的顺序对键值进行配对。

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

例子:“RightKeys”,3中的第三个变量Tright作为关键变量。

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

您可以使用“LeftVariables”要从输出中包含或排除键变量和非键变量,T

默认情况下,innerjoin包括Tleft

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

您可以使用“RightVariables”要从输出中包含或排除键变量和非键变量,T

默认情况下,innerjoin包括来自的所有变量Tright除了关键变量。

输出参数

全部折叠

内连接的TleftTright,作为一张桌子或时刻表返回。输出表或时间表,T中每一对行包含一行TleftTright在关键变量中共享相同的值组合。如果TleftTright包含相同名称的变量,innerjoin中的对应变量名添加唯一后缀T

一般来说,如果有的话TleftnTright它们在关键变量中包含相同的值组合T包含m * n该组合的行。

T是按关键变量中的值排序的,并包含Tleft (ileft LeftVars)Tright (iright RightVars).默认情况下,LeftVars由的所有变量组成Tleft,RightVars包含from的所有非键变量Tright.否则,LefttVars的指定的变量“LeftVariables”名称-值对参数,和RightVars变量是由“RightVariables”名称-值对的论点。

可以在中存储其他元数据,如描述、变量单元、变量名和行名T.有关更多信息,请参见属性部分表格时间表

索引Tleft,作为列向量返回。的每个元素ileft确定Tleft对应于输出表或时间表中的那一行,T

索引Tright,作为列向量返回。的每个元素iright确定Tright对应于输出表或时间表中的那一行,T

更多关于

全部折叠

关键变量

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

提示

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

    一般来说,innerjoin从输入表复制行标签Tleft到输出表T

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

    • 如果Tleft有行标签吗innerjoinTleft中创建行标签T

      • 然而,如果两个TleftTright是表,但您没有指定任何一个输入表的行名作为键,那么innerjoin在?中没有创建行名T

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

扩展功能

另请参阅

||

介绍了R2013b