Merge join
Algoritmo di join per relazioni già ordinate: si scorrono entrambe contemporaneamente (fusione a cerniera) restituendo le righe corrispondenti. O(N+M) senza ordinamento aggiuntivo. Ottimale quando entrambi gli input sono ordinati sulla chiave di join, tipicamente con indici B-tree corrispondenti.
Se l'input non è ordinato, il planner può scegliere un «sort-merge join»: prima si ordina, poi si fonde, con costo O(N log N). Concorrente: l'hash join è più veloce quando la memoria basta; il merge join è migliore quando non basta e mantiene l'ordinamento nell'output (si può evitare un ORDER BY successivo). Uso classico: query di data warehouse con più join sulla stessa chiave ordinata. Il planner di PostgreSQL preferisce di default l'hash join: il merge join brilla di rado, salvo con grandi dati ordinati e join a bassa cardinalità.