我正在尝试在数据库中实现与自然连接相同的想法,但在二维数组上,所以我想要做的是如果我有
A={[a,b],[a',b']} and B={[b,c], [b',c],[b,c']}
NaturalJoin(A,B) 的结果应该是:
Result = {[a,b,c], [a,b,c'],[a',b',c]}
因此,在我找到共享列 B 并在两个数组中进行比较后,如何合并行?您能否给我一些有关如何创建joinedTableau 的提示,因为我不知道从联接开始的行数,如何动态创建它?
这是我的伪代码:
int[][] array1;
int[][] array2;
int shared = prtiallyEqualColumn(array1,array2);
for(int i = 0; i <array1.length; i++)
{
for(int j = 0 ; j < array2.length; j++)
{
if(array1[i][shared] == array2[j][shared])
{
for(int s = 0 ; s < shared; s++)
{
joinedTableau[joinedCountRow][s] = array1[i][s];
}
for(int y=shared+1; y<array2.length;y++)
{
joinedTableau[joinedCountRow][y] = array2[j][y];
}
}
}
}