The compiler compares each left row with each right row.
candidate pair grid
Read pair count
The candidate grid has 20 left-right pairs.
candidate pairs=20
Semi-join examples are tiny finite-table transforms; SQL dialect completeness, type coercion, optimizer behavior, execution cost, indexing, and database-product claims are out of scope.
Pairs are not output rows
The pair grid explains matching; it is not the semi-join output.
pairs only explain
Summary
A semi join looks for existence inside the pair grid.