If my understanding is correct, a semi-join is a way of selecting records from one dataset that have related (via a common attribute) records in another set. So where does the "semi" come from?


1 Answer 1


"from one dataset"--of two. 1/2. "semi".

The paper that introduced the term is Using Semi-Joins to Solve Relational Queries by Bernstein and Chiu (1981).

this operator, which we call the semi-join and denote by ⋉,[...] takes the join of two relations, R and S, and then projects back out on the domains [attributes/columns] of relation R.

(Typically now we say either left (theirs) or right semi-join.)

They don't give a rationale. But the idea is that (informally) the semi-join is (the projection on) the R or S "half" of the join.

  • Great answer - thanks for the extra info!
    – Johntron
    Commented Jan 26, 2023 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.