A junction object is a Salesforce object that contains many-to-many relationships between two related objects.
The relationship details stored within a junction object form a junction relationship. In a many-to-many relationship, each record in an object links to multiple records in another object. A junction object stores all the relationships between the two objects. For example, CaseSolution is a junction object that stores many-to-many relations between the Case object and the Solution object. The relationship between the Case object and the Solution object is the junction relationship.
You can create a data subset from a junction object. You can insert data into a junction object. You cannot upsert data into the junction object.