2010-12-08 20 views

Répondre

2

Cela ne serait pas possible avec une jointure de fusion. Le Merge Join algorithm repose sur deux ensembles d'entrées triés et procède comme suit.

get first row R1 from input 1 
get first row R2 from input 2 
while not at the end of either input 
    begin 
     if R1 joins with R2 
      begin 
       return (R1, R2) 
       get next row R2 from input 2 
      end 
     else if R1 < R2 
      get next row R1 from input 1 
     else 
      get next row R2 from input 2 
    end 

Si les ensembles d'entrée étaient

input 1      input 2 
------      ------ 
    1       7 
    2       8 
    3       9 

la jointure input2.value > input1.value renverrait 9 lignes (toutes les permutations). Cependant, cela ne serait pas possible avec l'algorithme ci-dessus qui fait un seul passage à travers chaque ensemble.