Główkuję nad tym od kilku godzin i nie mogę dojść dlaczego otrzymuję tak dziwne wyniki.
Te zapytania działają prawidłowo:
SELECT grupa.nazwa, COUNT(forum.id_forum) FROM grupa LEFT JOIN forum ON (grupa.id_grupy=forum.id_grupy) GROUP BY grupa.id_grupy;
i
SELECT grupa.nazwa, COUNT(czlonkowie_grupy.id_czlonkowie_grupy) FROM grupa LEFT JOIN czlonkowie_grupy ON (czlonkowie_grupy.id_grupy=grupa.id_grupy) GROUP BY grupa.id_grupy;
Po złączeniu ich w jedno:
SELECT grupa.nazwa, COUNT(forum.id_forum), COUNT(czlonkowie_grupy.id_czlonkowie_grupy) FROM grupa LEFT JOIN forum ON (grupa.id_grupy=forum.id_grupy) LEFT JOIN czlonkowie_grupy ON (czlonkowie_grupy.id_grupy=grupa.id_grupy) GROUP BY grupa.id_grupy;
W sytuacji gdy tylko jeden COUNT() jest większy od 0 (lub oba równe 0) wyniki są dobre, dziwne dane pojawiają się wtedy, gdy w obu sumowaniach wynik jest większy od zera. W jednym przypadku gdy tu i tu jest 2 wyświetla się 4, w innym znowu przy liczbie for = 2 suma członków zwiększa się o 1.
Nie mam już pomysłów co może tutaj nie grać, proszę o pomoc.
Pozdrawiam