Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zliczanie rekordów
Forum PHP.pl > Forum > Bazy danych > MySQL
peklo
witam.
Mam mały problem z zapytaniem z funkcja count

Jak mam takie zapytanie:
  1. "SELECT count(a.id_ogloszenia),o.nazwa from ogl o LEFT OUTER JOIN ans a on o.id=a.id_ogloszenia group by o.id";


funkcja count zlicza mi ok. jednak jak dołoże to LEFT OUTER JOIN zd z on o.id=z.id_ogloszenia czyli:

  1. "SELECT count(a.id_ogloszenia),o.nazwa,z.id_ogloszenia from ogl o LEFT OUTER JOIN zd z on o.id=z.id_ogloszenia LEFT OUTER JOIN ans a on o.id=a.id_ogloszenia group by o.id";


zliczanie nagle głupieje i zawyża mi licznik bo jednemu o.id odpowiada np kilka z.id_ogloszenia.
Jak można zgrupować to z.id_ogloszenia lub dopasować tylko jedno np pierwsze z.id_ogloszenia do o.id. Próbowałem z selectem z nim i max ale coś mi nie hula
mmmmmmm
SELECT count(DISTINCT a.id_ogloszenia)
peklo
z DISTINCT próbowałem juz wczesniej i wszedzie sume mam 1.
Dobra poradziłem sobie w taki sposób i juz liczy mi ok

  1. "SELECT count(a.id_ogloszenia),o.nazwa from ogl o
  2. LEFT OUTER JOIN (SELECT id_ogloszenia as idoglo from zd group by id_ogloszenia) as zdj on o.id=idoglo
  3. LEFT OUTER JOIN ans a on o.id=a.id_ogloszenia group by o.id";
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.