How do nested loop, hash, and merge joins work? | Hacker News Reader