Possible improvement on join query
By improvement, I suppose you have performance in mind because your queries are fairly basic and not hard to understand.
I have had a look at your SQL fiddle and your tables have no indexes. Absent any other optimization mechanism the database engine will have to perform a full table scan to fetch the wanted rows. Thus, I don't expect much difference between a join or a subselect, or CTE. On a large table, the bottleneck is likely going to be row filtering, on a small table the performance hit should be negligible.
First, consider adding indexes on your tables, for example the user ID field could be a primary key.
Then use the explain command, preferably on a larger dataset for more representative results. For this you could write a script to generate a large bunch of random records.