Я хочу объединить данные из 4 разных запросов так что это мой запрос
SELECT dinas.dinas_id,dinas_nama, COUNT(sc_user.user_id) as total_user from dinas left JOIN sc_user on dinas.dinas_id=sc_user.dinas_id GROUP by dinas.dinas_id
UNION
SELECT dinas.dinas_id,dinas_nama, COUNT(sc_bidang.bi_id) as total_bidang from dinas left JOIN sc_bidang on dinas.dinas_id=sc_bidang.dinas_id GROUP by dinas.dinas_id
UNION
SELECT dinas.dinas_id,dinas_nama, COUNT(sc_kegiatan.ke_id) as total_kegiatan from dinas left JOIN sc_kegiatan on dinas.dinas_id=sc_kegiatan.dinas_id GROUP by dinas.dinas_id
UNION
SELECT dinas.dinas_id,dinas_nama, COUNT(sc_paket.ke_id) as total_paket from dinas left JOIN sc_kegiatan on dinas.dinas_id=sc_kegiatan.dinas_id left join sc_paket on sc_paket.ke_id=sc_kegiatan.ke_id GROUP by dinas.dinas_id
но результаты будут такими
но я хочу такие результаты
dinasid | dinas_nama | total_user | total_bidang | total_kegiatan| total_paket
может быть, кто-нибудь может помочь мне объединить эти данные?
это моя рабочий пример https://www.db-fiddle.com/f/tgohmvPrFnbNz8VgezbsFA/0






Все ваши выражения группируются по dinas.dinas_id, поэтому сумма левого соединения заканчивается так:
SELECT dinas.dinas_id,
dinas_nama,
COUNT(DISTINCT sc_user.user_id) as total_user,
COUNT(DISTINCT sc_bidang.bi_id) as total_bidang,
COUNT(DISTINCT sc_kegiatan.ke_id) as total_kegiatan,
COUNT(DISTINCT sc_kegiatan.ke_id, sc_paket.pa_id) as total_paket
FROM dinas
LEFT JOIN sc_user on dinas.dinas_id=sc_user.dinas_id
LEFT JOIN sc_bidang on dinas.dinas_id=sc_bidang.dinas_id
LEFT JOIN sc_kegiatan on dinas.dinas_id=sc_kegiatan.dinas_id
LEFT JOIN sc_paket on sc_paket.ke_id=sc_kegiatan.ke_id
GROUP by dinas.dinas_id
результаты (*count) не такие, как ожидалось.
я редактирую свой вопрос и добавляю скрипку и результаты, если я использую один запрос для тестирования
Спасибо, это очень помогло. total_paket нуждается в ближайшей повторной проверке (это 2 соединения), так как я думаю, что даже в вашем вопросе COUNT(sc_paket.pa_id) as total_paket имелось в виду.
Если вы не можете получить какой-либо другой точный ответ, вы можете использовать подзапрос, чтобы получить желаемый результат.