sql - C语言如何实现Left Outer Join

标签 sql c data-structures

在一次面试中,我被要求用C语言实现SQL左外连接。有任何想法,请输入我如何实现它。谢谢。

Input :

A
1,A,X
2,B,Y

B
2,M
3,N


Output of Left Outer Join between A and B is as below.

1,A,X, 
2,B,Y,M

#include<stdio.h>

void main()
{
    char A[10][3] = { {1,A,X},{2,B,Y} };
    char B[10][2] = { {2,M} , {3,N} };

    for ( int i=0; i<2;i++ )
    {
         for(int j=0; j<2; j++ )
         {
               if( A[i][0] == B[j][0])
               printf("%c\t%c\t%c\t%c",A[i][0],A[i][1],A[i][2],B[i][1]);
               else
               printf("%c\t%c\t%c\t",A[i][0],A[i][1],A[i][2]);
         }           
   }
}

问候, SOAddict

最佳答案

您可以为第一个表中的键值创建一个哈希并保存它的索引,然后迭代第二个表键值,如果哈希中存在键,那么您将转到该索引并合并。

关于sql - C语言如何实现Left Outer Join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28620977/

相关文章:

c - C 语言的维吉尼亚密码封装

arrays - swift中连续数组的数据结构

python - 将嵌套字典结构展平为数据集

python - for 语句中的动态数组

c# - 更新实体列表的有效方法

mysql - 在 SQL 中返回列表和计数

java - 命名参数和位置参数之间的性能差异

sql - 用另一个表中的值替换表列中的值

c - 在 OS X 中读取其他进程的内存?

数组迭代中的 CPU 空间缓存位置