Well not sure what you mean by arbitrary name but i decided to redo the query and done it like this..
$query = 'SELECT user_name,id,SUM(kills) as kills,SUM(wins) as wins,SUM(draws) as draws,SUM(bonus) as bonus FROM (
SELECT user_name, COUNT(id) as id, SUM(kills) as kills, SUM(wins) as wins, SUM(draws) as draws, SUM(bonus) as bonus FROM reports GROUP BY user_name
UNION all
SELECT user_name, COUNT(id) as id, SUM(kills) as kills, SUM(wins) as wins, SUM(draws) as draws, SUM(bonus) as bonus FROM reports2 GROUP BY user_name
UNION all
SELECT user_name, COUNT(id) as id, SUM(kills) as kills, SUM(wins) as wins, SUM(draws) as draws, SUM(bonus) as bonus FROM reports3 GROUP BY user_name
) t GROUP BY user_name';
It works great shows everything right except for COUNT(id).. count(id) is to get how many games the users has played.. for some reason its only counting id's from reports table and not from the other 2 tables.. now at the top if i were to use
'SELECT user_name,COUNT(id) as id,SUM(kills) as kills,SUM(wins) as wins,SUM(draws) as draws,SUM(bonus) as bonus FROM (
it would display (since i have played all 3 games. it shows 3 (which should show 97) but other ones that have only played 1 or 2 of the games shows 1 or 2 😕