Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Zliczenia: wiele do wielu, Grupuje, ale zlicza iloczyn kartezjanski
Reigon
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 19.10.2004

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


Witam,
chcialem stworzyc TOP 10 najchetniej zamawianych produktow, wszystko by bylo w porzadku, gdyby nie to, ze wiele tych samych produktow (lecz rozniacych sie np. kolorem) ma ten sam numer kodowy (oprocz tego jest takze uniklane id). W zwiazku z tym nie interesuje mnie np. zebym w TOP 10 mial np. monitor bialy i monitor czarny, tylko po prostu monitor.

Aktualnie robie to nieelegancko, czyli tak:

  1. SELECT COUNT( * ) AS ile, id_zam
  2. FROM statystyki GROUP BY id_zam
  3. ORDER BY ile DESC LIMIT 10


No i mam 10 najchetniej kupowanych produktow. I teraz wystarczy, ze w petli 10 razy odwolam sie do id_produktu, gdzie na koncu zapytania dam GROUP BY id_produktu.

Mowiac scislej mam np.
7 produktow o numerze 1234 (7 roznych kolorow)
i 13 zamowien tego produktu (o numerze 1234 - nie interesuje mnie jakie to byly kolory)

Probowalem cos takiego:
  1. SELECT COUNT(*) AS ile,id_content
  2. FROM statystyki,produkty WHERE id_content=id_zam
  3. GROUP BY id_content,id_zam
  4. ORDER BY ile DESC


grupuje mi ladnie, tyle ze count zlicza caly iloczyn kartezjanski :/

Probowalem z podzapytaniem (zeby w juz mial pogrupowane najpierw produkty, a pozniej grupowal po zamowieniach), ale cos sie zawiesza - moze jakos zle je skonstruowalem.

Jezeli ktos widzi rozwiazanie prosilbym o przyklad.

Ten post edytował Reigon 28.02.2007, 15:51:24
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 18:27