join merges two sorted files on a key column, here field 1 of both, and -a 1 keeps every row from the first file even without a match in the second. The process substitution runs each sort as a virtual file, satisfying join's sorted-input requirement. Without -a, unmatched rows are dropped silently.
Looking for more? Search all 7,657 commands — works offline, in English or Spanish, and fixes typos.