Answer
Nested Loops: Best for small outer input and indexed inner table. Great for OLTP random lookups.
Merge Join: Requires sorted inputs. Very fast for large, sorted datasets.
Hash Join: Best for large, unsorted sets. Spills to TempDB if memory is insufficient.