当连接键不是唯一的时,如何让Matlab连接表

时间:2016-04-06 01:24:26

标签: sql matlab join

我有这个问题:

table1 = table([1 1 2 2].', [1 2 3 4].');
table2 = table([1 1 2 2].', [100 200 300 400].');
table2.Properties.VariableNames{2} = 'Var3';
join(table1, table2)

给出(在2015b)

>> join(table1, table2)
Error using table/join (line 111)
The key variable for B must have unique values.

join命令很好,因为它保留了table1的原始行排序,但它无法处理table2中的重复键值或缺少键值。命令innerjoinouterjoin可以,但可以根据键对行重新排序。

我希望新函数的行为与SQL类似,这样如果有重复值,则使用交叉产品,即输出应为:

ans = 

    Var1    Var2    Var3
    ____    ____    ____

    1       1       100 
    1       2       100 
    1       1       200 
    1       2       200 
    2       3       300 
    2       4       300 
    2       3       400 
    2       4       400 

并实现它,以便最终数据集保留第一个表中行的原始顺序,然后是第二个表。

0 个答案:

没有答案