2015-02-20 2 views
-5

Меня попросили в интервью реализовать SQL Left external join на языке C. Любые мысли, вклады, как я могу его реализовать. Благодарю вас.Как реализовать Left Outer Присоединиться к языку C

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

+0

PLS доля ур мысли люди .. не голосуйте это PLS ... – Teja

+1

Я думаю, рано или поздно код будет задействован. По крайней мере, так я и сделал бы это. Подумайте, что потребуется, напишите алгоритм, напишите соответствующий код, и если колеса упадут где-то там, принесите конкретные вопросы сюда. – WhozCraig

+0

Звучит для меня как у кого-то недоразумение. C не имеет объединений, внешних или внешних. Но внутри C вы можете обратиться в базу данных. SO, возможно, они хотели спросить: «Как бы вы сделали Left Outer Join этой RDBMS с C» – Karl

ответ

1

вы можете создать хэш для ключевых значений в первой таблице и сохранить его в индекс, а затем итерации над вторым значением ключа таблицы и существует ключ в хэш-то вам перейдут к этому индексу и сольются.

0

Концепция LEFT OUTER JOIN относится к заданной операции, в которой вы выводите все элементы «левого» набора, а также пытаетесь вывести соответствующие элементы из «правого» набора, сопоставляя элементы, используя критерии соответствия (часто первичный и внешний ключ).

Вы можете создать этот тип data structure in C. Для аргумента предположим, что каждый заданный элемент однозначно идентифицируется целым числом Id.

Введите код, который выводит каждый элемент («строка») из вашего «левого» набора и пытается найти подходящий элемент из нужного набора, используя Id. Если он найдет его, также выведите этот элемент в этой выходной строке. Если нет, выведите что-то, указывающее отсутствие соответствия (SQL использует NULL).

HashSet - это эффективная структура данных, используемая для идентификаторов, хотя есть и другие возможности.

Смежные вопросы