Each left row gets an exists flag after the pair grid is checked.
exists per left row
Read exists flags
3 left rows have at least one matching right row.
left rows with match=3
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.
One flag per left row
The existence table has one row per left source row.
one flag per left row
Summary
Semi join keeps rows by this flag, not by pair count.