SELECT g.id,g.name,g.beginat, sp.cnt AS sps, csts.cnt AS csts, lp.cnt AS colonables, spa.cnt AS startables FROM csvdevel.galaxies g LEFT JOIN (SELECT cst.galaxyid,count(sp.*) AS cnt FROM csvdevel.constellations cst JOIN csvdevel.starsystems ss ON cst.id = ss.cstid JOIN csvdevel.planets p ON ss.id = p.starsysid LEFT JOIN csvdevel.startplanets sp ON p.id = sp.planetid GROUP BY cst.galaxyid) sp ON g.id = sp.galaxyid LEFT JOIN (SELECT cst.galaxyid,count(cst.*) AS cnt FROM csvdevel.constellations cst GROUP BY cst.galaxyid) csts ON g.id = csts.galaxyid LEFT JOIN (SELECT cst.galaxyid,count(p.*) AS cnt FROM csvdevel.constellations cst JOIN csvdevel.starsystems ss ON cst.id = ss.cstid JOIN csvdevel.planets p ON ss.id = p.starsysid JOIN csvdevel.planettypes pt ON p.ptypeid = pt.id WHERE pt.colonable GROUP BY cst.galaxyid) lp ON g.id = lp.galaxyid LEFT JOIN (SELECT cst.galaxyid,count(p.*) AS cnt FROM csvdevel.constellations cst JOIN csvdevel.starsystems ss ON cst.id = ss.cstid JOIN csvdevel.planets p ON ss.id = p.starsysid JOIN csvdevel.planettypes pt ON p.ptypeid = pt.id WHERE pt.startable GROUP BY cst.galaxyid) spa ON g.id = spa.galaxyid WHERE g.groupid= $1 ORDER BY ldeaccent_utf8(g.name); SELECT id,name FROM csvdevel.galaxies WHERE groupid = $1 AND NOT beginat AND NOT id IN (SELECT g.id FROM csvdevel.galaxies g JOIN csvdevel.constellations cst ON cst.galaxyid = g.id JOIN csvdevel.starsystems ss ON ss.cstid = cst.id JOIN csvdevel.planets p ON p.starsysid = ss.id WHERE p.id IN (SELECT planetid FROM csvdevel.colonies));