There are two stages in Hash-Semi-Join:
- build: the inner table is used for hash table for rapid searching matching rows.
- probe: the outer table is used for probe table. Each record of probe table is applied the same hash function on the joining column and will be hit the corresponding entry in the hash table. If a record of probe table first matches with a row in hash table, it will be output and never output again even if matches again.