A semi join is a join that stops when the first hit is encountered. Thus, at most one record from the join's left table is returned.
Typically, a semi join is used in SQL statements that contain conditions like where exists (select … from …) or where id in (select s.id from xyz as s).
See also
Unlike a semi join, an anti joins returns one record from the left table if no matching record is found in the right table.
Event 10161 switches on or off recursive semi-joins.