SELECT networks.id, networks.name, networks.active, count(distinct(servers.id)) AS servers, count(distinct(routers.id)) AS routers, count(distinct(routersDownstreams.id)) AS downstreams, count(distinct(routersUpstreams.id)) AS upstreams FROM networks LEFT JOIN servers ON (networks.id = servers.networksID) LEFT JOIN routers ON (networks.id = routers.networksID) LEFT JOIN routersDownstreams ON (routers.id = routersDownstreams.routersID) LEFT JOIN routersUpstreams ON (routers.id = routersUpstreams.routersID) GROUP BY networks.id ORDER BY networks.name ASC