Algoritmul merge join pentru liste sortate (merge join, sort merge join, sort-merge join) este un fel de algoritm de join .
Algoritmul primește două tabele și o condiție de unire ca intrare. Rezultatul muncii sale este un tabel cu rezultatele conexiunii.
Tabelele de intrare trebuie sortate după coloanele implicate în condiția de îmbinare. Unirea se realizează într-o singură scanare (trecere) a fiecăruia dintre tabelele de intrare. Adică, același rând este citit o singură dată, ceea ce oferă un avantaj față de unirea cu bucle imbricate .
Un exemplu simplu de pseudocod :
//trebuie să se alăture Tabelului 1 și Tabelului 2 //după condiție: Table1.Column1 = Table2.Column2 //Pentru a simplifica exemplul, vom presupune că valorile din Coloana2 sunt unice Tabel1.Sortează(Coloana1); Table2.Sort(Column2); Table1.StandOnFirstRecord; Tabelul 2. Mutare la prima înregistrare; În timp ce Table1.NotLastRecord și Table2.NotLastRecord { Dacă Tabel1.Coloana1 < Tabel2.Coloana2 { Tabel1. Treceți la următoarea intrare; } Altfel Dacă Tabel1.Coloană1 = Tabel2.Coloană2 { Ieșire (Table1.CurrentRecord, Table2.CurrentRecord); Tabel1. Treceți la următoarea intrare; Tabelul 2. Treceți la următoarea intrare; } Altfel Dacă Tabel1.Coloană1 > Tabel2.Coloană2 { Tabelul 2. Treceți la următoarea intrare; } }