It sounds like you've got multiple records in your table2 for a particular country
data in table1
data in table 2
If you join against this data, you will see multiple rows since you haven't told it to perform any aggregation. When inner joining table1 against table2 as above, returning 3 rows is correct - it's satisfied your criteria
In addition to this, what 'fee' record should it display? There are 3 in the above, there's no way of uniquely retrieving the data.
What you might want to do is find the SUM of the values for a particular country, then join on that.
a.comm, ISNULL(SumOfFees.Fees, 0) AS Fees
country, SUM(fee) AS Fees
A.country = SumOfFees.country
So, the sub-query performs a GROUP BY and SUM of the fee field, which will return unique records at country level.
We now perform a LEFT JOIN against the country code field, so this will return all of the data from table1 and the sum of fees from our sub query.