The error is telling you the problem -- all the columns used in a foreign key must be all the columns in a unique index on the primary table. If the primary table has a multi-column primary key, all those columns must comprise the foreign key.
You don't have to join tables on foreign keys in queries... but you would need to handle any data duplication that might result if the joining columns are not unique.