内部联接

内蒙古两个表或时间表之间的连接

描述

Ť= innerjoin(TleftTright创建表或时间表,Ť作为内部联接TleftTright运用关键变量。在两个输入相同名称的所有变量是关键变量。内部联接联合收割机行,其中的关键变量具有匹配值。例如,如果Tleft有一个名为变量键1VAR1Tright有变数键1VAR2, 然后T = innerjoin(Tleft,Tright)使用键1作为关键变量。

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

您可以执行内部联接仅在表和时间表的某些组合。

  • 如果Tleft是一个表,然后Tright必须是一个表。内部联接回报Ť为表。

  • 如果Tleft是一个时间表,然后Tright可以是一个表或一个时间表。内部联接回报Ť作为用于输入任一组合的时间表。

的行标签的载体TleftTright可能是关键变量。行标签是一个表的行名称或时间表的行倍。

Ť= innerjoin(TleftTright名称,值执行所述内联接操作与由一个或多个指定的附加选项名称,值对参数。

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

[Ť我离开了iright] = innerjoin(___也返回指数载体,我离开了iright指示的行之间的对应关系Ť和行TleftTright分别。您可以使用此语法与任何在前面的语法输入参数。

例子

全部收缩

创建一个表,Tleft

Tleft =表([5; 12; 23; 2; 6]...{'谷类';'比萨';'三文鱼';'饼干';'比萨'},...'VariableNames'{'年龄''FavoriteFood'})
Tleft =5×2表年龄FavoriteFood ___ ____________ 5 { '谷物'} 12 { '比萨饼'} 23 { '鲑'} 2 { '曲奇'} 6 { '比萨饼'}

创建一个表,Tright与在共同与一个可变Tleft

Tright =表({'谷类';'饼干';'比萨';'三文鱼';'蛋糕'},...[110; 160; 140; 367; 243],...{'一个-';'d';'B';'B';'C-'},...'VariableNames'{'FavoriteFood'“卡路里”'NutritionGrade'})
Tright =5×3表FavoriteFood卡路里NutritionGrade ____________ ________ ______________ { '谷物'} 110 { 'A-'} { '曲奇'} 160 { 'd'} { '比萨饼'} {140 'B'} { '鲑鱼'} 367 { 'B'} { '蛋糕'} {243 'C-'}

使用内部联接函数创建一个新表,Ť与来自表中的数据TleftTright

T = innerjoin(Tleft,Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade ___ ____________ ________ ______________ 5 { '谷物'} 110 { 'A-'} 2 { '曲奇'} 160 { 'd'} 12 { '比萨饼'} 140 { 'B'} 6 { '比萨饼'} {140 'B'} 23 { '鲑'} 367 { 'B'}

Ť由密钥变量进行排序,FavoriteFood

创建一个表,Tleft

Tleft =表({'一个''B''C''E''H'} '[1 2 3 11 17]',...'VariableNames'{“键1”'VAR1'})
Tleft =5×2表KEY1 VAR1 _____ ____ { '一个'} {1 'B'} 2 { 'c' 的} 3 {的 'e'} {11 'H'} 17

创建一个表,Tright与在变量值共同键1表之间TleftTright,而且还含有具有的值的行键1不存在Tleft

Tright =表({'一个''B''d''E'} '[4 5 6 7]',...'VariableNames'{“键1”'VAR2'})
Tright =4×2表KEY1 VAR2 _____ ____ { '一个'} 4 { 'B'} 5 { 'd'} 6 { 'E'} 7

使用内部联接函数创建一个新表,Ť与来自表中的数据TleftTright。只保留其行中的值变键1比赛。

此外,收益指数的载体,我离开了iright指示的行之间的对应关系Ť和行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

Ť由值的关键变量进行排序,键1,并含有的水平级联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

使用内部联接函数创建一个新表,Ť与来自表中的数据TleftTright。使用的第一个变量Tleft和第二可变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

Ť仅保留该行之间的匹配TleftTright相对于关键变量。

Ť包含的横向拼接Tleft(ileft,:)Tright(iright, 'VAR1')

创建两个时间表,TleftTright。他们有一些共同的排次,但每次也包括行时间是不是在其他的时间表。

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

结合TleftTright与内连接。Ť与常见的排次的行相匹配。Ť不包含从任何时间表的其他行。

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

输入参数

全部收缩

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

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

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:'密钥',2使用在第二可变Tleft和第二可变Tright作为关键变量。

变量作为密钥使用,指定为逗号分隔的一对组成的“钥匙”和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

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

行标签的载体可以是一个键,单独地或与其他关键变量组合。欲了解更多信息,请参阅提示部分。

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

例:'钥匙',{ 'X', 'Y'}使用名为变量XÿTleftTright作为关键变量。

例:“钥匙”,“行”使用的行名的载体TleftTright作为关键变量,如果两个TleftTright与行的名称表。

变量在使用的密钥Tleft,指定为逗号分隔的一对组成的'LeftKeys'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您必须使用'LeftKeys'在用连词名称 - 值对参数'RightKeys'名称 - 值对的参数。'LeftKeys''RightKeys'两者都必须指定相同数量的关键变量。内部联接对键值根据他们的订单上。

行标签的载体可以是一个键,单独地或与其他关键变量组合。欲了解更多信息,请参阅提示部分。

例:'LeftKeys',1仅使用在所述第一可变Tleft作为关键变量。

变量在使用的密钥Tright,指定为逗号分隔的一对组成的'RightKeys'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您必须使用'RightKeys'在用连词名称 - 值对参数'LeftKeys'名称 - 值对的参数。'LeftKeys''RightKeys'两者都必须指定相同数量的关键变量。内部联接对键值根据他们的订单上。

行标签的载体可以是一个键,单独地或与其他关键变量组合。欲了解更多信息,请参阅提示部分。

例:'RightKeys',3仅使用在所述第三可变Tright作为关键变量。

从变量Tleft包括在Ť,指定为逗号分隔的一对组成的'LeftVariables'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您可以使用'LeftVariables'要包括或排除的关键变量,以及从输出非键变量,Ť

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

从变量Tright包括在Ť,指定为逗号分隔的一对组成的'RightVariables'和一个正整数,正整数,字符向量,特征向量的单元阵列中,字符串数组,或逻辑矢量的矢量。

您可以使用'RightVariables'要包括或排除的关键变量,以及从输出非键变量,Ť

默认,内部联接包括从所有的变量Tright除了关键变量。

输出参数

全部收缩

内蒙古从加盟TleftTright,返回表或时间表。输出表或时间表,Ť包含一行中每对行TleftTright这一比例在关键变量的值相同的组合。如果TleftTright包含具有相同名称的变量,内部联接增加了一个独特的后缀以在相应的变量名Ť

一般情况下,如果有TleftñTright所有包含的值相同的组合中的关键变量,那么Ť包含m * n个行对于组合。

Ť通过在关键变量值进行排序,并包含的横向拼接Tleft(ileft,LeftVars)Tright(iright,RightVars)。默认,LeftVars由所有的变量TleftRightVars由来自所有非关键变量Tright。除此以外,LefttVars由被指定的变量'LeftVariables'名称 - 值对的参数,和RightVars是由指定的变量'RightVariables'名称 - 值对的参数。

你可以存储更多的元数据,如描述,变单位,变量名和行名中Ť。欲了解更多信息,请参阅的属性部分要么时间表

索引Tleft,返回为列向量。中的每个元素我离开了标识的行Tleft对应于在输出表中或时间表该行,Ť

索引Tright,返回为列向量。中的每个元素iright标识的行Tright对应于在输出表中或时间表该行,Ť

更多关于

全部收缩

关键变量

变量用来匹配和输入表之间的相结合的数据,TleftTright

提示

  • 行标签从输入表或时间表的载体可以是键,单独地或与其他关键变量组合。行标签是一个表的行名称或时间表的行倍。要使用此向量作为重点,将其指定为'行'(为一个表的行的名称),作为行倍时间表矢量的名称,或作为值Ť.Properties.DimensionNames {1},其中Ť为表或时间表。

    一般来说,内部联接从输入表副本行标签Tleft输出表Ť

    • 如果Tleft没有行标签,然后Ť没有行标签。

    • 如果Tleft有行标签,然后内部联接张行从标签Tleft创建行标签中Ť

      • 然而,如果两个TleftTright是表,但没有指定输入表的行名称作为一个键,然后内部联接在不创建行名称Ť

    您不能执行内连接使用的行标签Tleft作为左键和可变Tright就象钥匙。为了进行内部连接,转换的行标签Tleft到一个表变量,并使用新的表变量作为重点。

扩展功能

也可以看看

||

介绍了在R2013b