Could you try to join only on one variable (User&'|'&Date) instead of 2 user and Date separately? Therefore, you rename USER and Date in each table so they won't link, and you add a new variable USER&'|'&Date as Link.
There may be an issue joining on Date (or USER) from the phone table. Consider aligning the data types by wrapping with Date() function : Date(Date) as Date ... and loading each individually to check the date values are being intepreted the way you expect so that they will join accordingly.
If the tables are at the same granularity , then a table concatenation with an extra field called 'TYPE' could offer some interesting possibilities. One of the following 3 fields could each be added each of the loads to give the user a way to SLICE. It may also help with some set analysis.