gpt4 book ai didi

java - 二维数组的自然连接

转载 作者:行者123 更新时间:2023-12-01 11:37:00 24 4
gpt4 key购买 nike

我正在尝试在数据库中但在二维数组上实现自然连接的相同想法,所以我想做的是如果我有

A={[a,b],[a',b']} 和 B={[b,c], [b',c],[b,c']}

NaturalJoin(A,B) 的结果应该是:

Result = {[a,b,c], [a,b,c'],[a',b',c]}

因此,在找到共享列 B 并在两个数组中进行比较后,如何合并行?您能否给我一些关于如何创建 joinTableau 的提示,因为我不知道从连接开始的行数,如何动态创建它?

这是我的伪代码:

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];
}
}
}
}

最佳答案

我不知道您在代码中做了什么,因为您隐藏了问题中提供的代码中的几个实现。我给你算法:-

Each column value of array1 must be compared with each row value of array2 to produce a natural join,only in case if they are equal, else not.

a1 = array1.countRow();
a2 = array1.countColumn();
b1 = array2.countRow();
b2 = array2.countColumn();
i = j = 1;
while(i<=a1)
while(j<=b1)
if(array1[i][a2]==array2[j][1]) // I've made array-indices start from 1
// perform natural-join operation between array1[i]+array2[j]-common_element
// Similarly iterate the array for next passes.

如果有任何错误或您不清楚的地方,请通知我。祝您的代码好运。

关于java - 二维数组的自然连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29868615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com