For a join both tables requires the same variables. For an innerjoin the overlapping variables are chosen.
A look into the documentation is useful:
You can create an innerjoin of:
a = table({'a' 'b' 'c' 'e' 'h'}', [1 2 3 11 17]', 'VariableNames',{'Key1' 'Var1'})
b = table({'a' 'b' 'd' 'e'}', [4 5 6 7]', 'VariableNames',{'Key1' 'Var2'})
The result contains the overlapping keys 'a', 'b', 'e' only. You cannot join them due to the not matching 'c' and 'h'. But you can join:
a = table({'a' 'b' 'c' 'e' 'h'}', [1 2 3 11 17]', 'VariableNames', {'Key1' 'Var1'})
b = table({'a' 'b' 'h' 'e' 'c'}', [4 5 6 7 8]', 'VariableNames', {'Key1' 'Var2'})
Here the join and innerjoin give the same results, so it does not matter, which one you run.
Note:
- join: both tables need the same keys
- innerjoin: The result contains the overlapping keys only
- outerjoin: The result contains all keys of both tables and fills missing values with dummies.
Best Answer