WITH RegionConnections AS (
  SELECT
    ss.regionId AS fromRegionId,
    ss_to.regionId AS toRegionId
  FROM StarGates sg
  JOIN SolarSystems ss ON sg.fromSystemId = ss.solarSystemId
  JOIN SolarSystems ss_to ON sg.toSystemId = ss_to.solarSystemId
  WHERE ss.regionId != ss_to.regionId
),
ConnectedRegions AS (
  SELECT
    fromRegionId,
    GROUP_CONCAT(DISTINCT r2.regionName) AS connectedRegions
  FROM RegionConnections rc
  JOIN Regions r2 ON rc.toRegionId = r2.regionId
  GROUP BY fromRegionId
)
SELECT
  re.regionName AS regionName,
  rml.x,
  rml.y,
  AVG(ss.security) AS security,
  COALESCE(cr.connectedRegions, '') AS connectsTo
FROM RegionMapLayout rml
JOIN Regions re ON rml.regionId = re.regionId
JOIN SolarSystems ss ON ss.regionId = re.regionId
LEFT JOIN ConnectedRegions cr ON re.regionId = cr.fromRegionId
GROUP BY re.regionId;
