Algoritmen för sammanfogning för sorterade listor (sammanfoga sammanfogning, sortera sammanfoga sammanfogning, sortera sammanfoga sammanfogning) är en slags sammanfogningsalgoritm .
Algoritmen får två tabeller och ett kopplingsvillkor som indata. Resultatet av hans arbete är en tabell med resultaten av kopplingen.
Inmatningstabellerna måste sorteras efter de kolumner som är involverade i kopplingsvillkoret. Sammankopplingen utförs i en genomsökning (pass through) av var och en av inmatningstabellerna. Det vill säga att samma rad endast läses en gång, vilket ger en fördel jämfört med sammanfogning med kapslade loopar .
Ett enkelt pseudokodexempel :
//need to join Tabell 1 och Tabell 2 //efter villkor: Tabell1.Kolumn1 = Tabell2.Kolumn2 //För att förenkla exemplet kommer vi att anta att värdena i kolumn2 är unika Tabell1.Sortera(kolumn1); Tabell2.Sortera(kolumn2); Tabell1.StandOnFirstRecord; Tabell 2. Flytta till första posten; Medan Table1.NotLastRecord och Table2.NotLastRecord { Om Tabell1.Kolumn1 < Tabell2.Kolumn2 { Tabell 1. Gå till nästa post; } Annars om Tabell1.Kolumn1 = Tabell2.Kolumn2 { Output(Table1.CurrentRecord, Table2.CurrentRecord); Tabell 1. Gå till nästa post; Tabell 2. Gå till nästa post; } Else If Tabell1.Kolumn1 > Tabell2.Kolumn2 { Tabell 2. Gå till nästa post; } }