Joining
A to B, assuming A has a better filter than B (almost certainly true
for a correct nested-loops join order):
Nested
Loops: For each A, find matching Bs following the indexed join
key.
Hash
Join: Reach B as if with a single-table query, then line up A-to-B
matches on the hash of the join keys.