Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Złączenie tabel powoduje dziwne wyniki
Flanker
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.06.2007
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Witam

Główkuję nad tym od kilku godzin i nie mogę dojść dlaczego otrzymuję tak dziwne wyniki.

Te zapytania działają prawidłowo:
  1. 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
  1. 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:
  1. 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

Ten post edytował Flanker 27.07.2010, 16:47:40
Go to the top of the page
+Quote Post
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


Najpierw zliczaj, potem składaj:

Kod
SELECT
  g.nazwa, f.cnt, c.cnt
FROM
  grupa AS g
LEFT JOIN
  (SELECT id_grupy, COUNT(1) AS cnt FROM forum GROUP BY id_grupy) AS f USING (id_grupy)
LEFT JOIN
  (SELECT id_grupy, COUNT(1) AS cnt FROM czlonkowie_grupy GROUP BY id_grupy) AS c USING (id_grupy)


Ten post edytował Mchl 27.07.2010, 22:14:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 11:30