This is something that I found out the hard way. Qlik applies the DISTINCT keyword on the resulting dataset. So, when you join distinct table, you are not joining the distinct table to the other table. You are doing the join and then returning the distinct records from the resulting join.

Take this example:

join distinct

Source

You might expect:

join distinct

However, what you actually get is:

join distinct

If you want to achieve the first result. You will need to do something like this:

join distinct

Source