Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zliczanie grup w danej kategorii
sf
post
Post #1





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Witam, mam o to takie 3 tabele :
  1. -- sfg_categories - podział na kategorie (jedno warstwowy), w ktorych trzymamy obrazki
  2. -- nr kategorii, nazwa, prawa autorskie do obrazkow z tej grupy
  3.  
  4. CREATE TABLE sfg_categories (
  5. cid SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT UNIQUE NOT NULL,
  6. cname VARCHAR(255) NOT NULL,
  7. ccopyrights VARCHAR(255) NOT NULL DEFAULT ''
  8. );
  9.  
  10. -- sfg_pictures - kazdy obrazek ma swoj numer
  11. -- nr obrazka, nr kategorii, nr grupy, szerokosc, wysokosc obrazka
  12.  
  13. CREATE TABLE sfg_pictures (
  14. pid SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT UNIQUE NOT NULL,
  15. pcid SMALLINT UNSIGNED NOT NULL,
  16. pgid SMALLINT UNSIGNED NOT NULL, -- te same obrazki, ale w roznej rozdzielczosci maja ten sam numer
  17. psizex SMALLINT UNSIGNED NOT NULL, -- szerokosc
  18. psizey SMALLINT UNSIGNED NOT NULL -- wysokosc
  19.  
  20. );
  21.  
  22. -- sfg_groups - grupy tworza obrazki, ktore maja ten sam obrazek, ale w roznej rozdzielczosci
  23. -- nr grupy, data utworzenia grupy, typ/rozszezenie pliku, opis grupy
  24.  
  25. CREATE TABLE sfg_groups (
  26. gid SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT UNIQUE NOT NULL,
  27. gdate TIMESTAMP NOT NULL, -- dodawana automatycznie
  28. gtype VARCHAR(6) NOT NULL DEFAULT 'jpg', -- typ pliku
  29. gdesc VARCHAR(255) NOT NULL DEFAULT 'brak opisu' -- opis co przedstawia obrazek
  30. );

Chciałbym teraz uzyskać zapytanie, które zwróci mi ilość grup w poszczególnych kategoriach. Próbowałem w ten sposób:
  1. SELECT cid, cname, count(*) AS ng
  2. FROM sfg_categories, sfg_pictures WHERE pcid = cid GROUP BY cid, cname ORDER BY cname ASC

Niestety zlicza dodatkowo rozdzielczości. Czyli jeżeli grupa zawiera obrazek w rozdzielczości 800x600 i 1024x768 to liczy jako 2 pozycje, a powinno jako jedną.
Zastanawiam się także czy może nie lepszym rozwiązaniem byłoby przeniesienie pcid (nr kategorii) z sfg_pictures do sfg_groups. Wtedy chyba powinno się dać łatwo stworzyć zapytanie do policzenia, ale nie wiem czy nie spwoduje to problemów z innymi zapytaniami :-/. Gubie się jak chodzi o SQL bo mój mózg nie umie tego wszystkiego naraz pojąć ;] Eksperymentowanie natomiast zajmuje bardzo dużo czasu. Yh.
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.08.2025 - 00:56