Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Niewidzialne mnożenie
Gigante
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 29.09.2006
Skąd: Oława

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


  1. SELECT nazwa, SUM(wejscia) AS wejsc FROM gry,statystyki,tagi WHERE statystyki.data>=".(time()-(60*60*24*2))." AND gry.id=tagi.id AND gry.id=statystyki.id AND tagi.id NOT IN (SELECT DISTINCT id FROM tagi WHERE url='play-by-forum' OR url='pbf' OR url='mikronacja' OR url='mikronacje') GROUP BY statystyki.id HAVING wejsc>=5 ORDER BY wejsc DESC
  2.  

zwraca unikalne nazwy i sume wejsc - to działa poprawnie (IMG:style_emoticons/default/winksmiley.jpg)

ale przy okazji robi mnożenie zwracanej sumy o ilosc tagow z tabeli TAGI efekt nieporzadany, ma nie mnozyc (IMG:style_emoticons/default/smile.gif) chyba ze przez 1

np: suma wejsc z 2 ostatnich dni wynosi: 5
wpis posiada 4 tagi (zapisywane sa w osobnych wierszach)
wyswietlany wynik to 20 (5 x 4)

negacje probowalem robic poprzez != i <> ale nadal wyswietlalo wpisy zawierajacy dany tag np:
  1. SELECT nazwa,SUM(wejscia) AS wejsc FROM gry,statystyki,tagi WHERE statystyki.data>=".(time()-(60*60*24*7))." AND tagi.url!='mikronacja' AND gry.id=tagi.id AND gry.id=statystyki.id GROUP BY statystyki.id HAVING wejsc>=1 ORDER BY wejsc DESC
  2.  


Ten post edytował Gigante 10.11.2009, 11:31:47
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: 3.10.2025 - 20:44