Two COUNTS with Left Joins are Being Multiplied
You should use count( distinct ...)
to count unique values. Instead of counting userid ( the foreign key) count the referenced table's primary key.
See the docs here
You are getting eight because you are returning 2 records from jobs and 4 from places. Since you are not counting distinct values you get 2*4 = 8.
Your problem is likely that you're not mapping Place2User and Job2User tables, thus you are preforming a cross join. More info on Cross Joins
You will need to use inner queries to achieve this unless you the two tables Place2User relates to the Job2User in some way.
Try this:
SELECT `UserName`, `Job2User`.`Count`, `Place2User`.`Count` FROM `Users`LEFT JOIN (SELECT `UserID`, COUNT(1) AS 'Count' FROM `Job2User` GROUP BY `UserID`) `Job2User` ON `Job2User`.`UserID`=`Users`.`UserID` LEFT JOIN (SELECT `UserID`, COUNT(1) AS 'Count' FROM `Place2User` GROUP BY `UserID`) `Place2User` ON `Place2User`.`UserID`=`Users`.`UserID`
One option is to use inline views for each table you want to count
SELECT `UserName`, `Job2User`.`Job2UserCount`, `Place2User`.`Place2UserCount`FROM `Users` ` LEFT JOIN(SELECT COUNT(`Job2User`.`UserID`) Job2UserCount , UserIDFROM Job2User GROUP BY `UserID` )Job2UserON `Job2User`.`UserID`=`Users`.`UserIDLEFT JOIN(SELECT COUNT(`Place2User`.`UserID`) Place2UserCount, UserIDFROM Job2User GROUP BY `UserID` )Place2UserON `Place2User`.`UserID`=`Users`.`UserID` GROUP BY `UserName`;