mysql, суммирование значений связанных таблиц

есть 3 связанные таблицы, главная таблица - категория, вторая таблица- оборудования, 3-пользователи. суммирую оборудования по категориям- проходит, суммирую пользователей по категориям - проходит, пытаюсь суммировать одновременно оборудования и пользователей - не проходит. возможно не правильно суммирую. ниже выложил запрос. помогите пожалуйста разобраться.

SELECT sum.name AS 'категория'
     , SUM(dslam.dslam) AS 'сумма' 
FROM dslam 
JOIN sum ON dslam.sats_id = sum.id 
GROUP BY sum.id;  

SELECT sum.name AS 'Категория'
     , COUNT(sats.sats_id) AS 'пользователи' 
FROM sats 
JOIN sum ON sats.sats_id = sum.id 
GROUP BY sum.id;

как-то так пытаюсь объединить запрос

SELECT sum.name AS 'категория', SUM(dslam.dslam) AS 'сумма', COUNT(sats.sats_id) AS'пользователи' FROM dslam JOIN sum ON dslam.sats_id = sum.id JOIN sats ON sats.sats_id = sum.id GROUP BY sum.id;

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Akina
SELECT sum.name AS 'Категория',
     , dslam_agg.sum_dslam AS 'сумма' 
     , sats_agg.count_sats AS 'пользователи' 
FROM sum 
[LEFT] JOIN (SELECT dslam.sats_id AS id
                  , SUM(dslam.dslam) AS sum_dslam
             FROM dslam 
             GROUP BY dslam.sats_id) dslam_agg USING (id)
[LEFT] JOIN (SELECT sats.sats_id AS id
                  , COUNT(sats.sats_id) AS count_sats
             FROM sats 
             GROUP BY sats.sats_id) sats_agg USING (id)
→ Ссылка