A join is the means of relating the data in two tables together.
An equijoin has a join condition containing an equality operator. If the joined columns have the same name, the join can be referred to as a natural join. The majority of the time, joins are made between two different tables with a foreign key to primary key relationship. A single table can even be joined to itself if the two keys are in that table (a reflexive join). However, it is possible to join a table using columns other than primary or foreign keys (a non-key join). It is even possible to join tables without using the equality operator (e.g., an anti-join or semi-join) or to join with the results of a query rather than a table (named subqueries).