Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Prawdopodobnie banalny problem z napisaniem zapytania
m1c
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.10.2008

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


Mam tabelke:

Nie mam problemu jeśli chcę wyswietlic tabele podajac dokladnie o co mi chodzi, czyli:
  1. <?php
  2. $zapytanie ="SELECT * FROM stats_sales WHERE product = 'game-1' AND (date BETWEEN '2008-10-25' AND 2008-10-26') AND site LIKE 'strona-1'  AND sys LIKE 'win' AND lang LIKE 'en' ORDER BY date";
  3. ?>


Wyswietlam to mniej wiecej tak (pomijam lang i sys):

| SITE | HIT | DATE |
| strona-1 | 1 | 2008-10-25 |
| strona-1 | 5 | 2008-10-26 |
| ... | ... | ... | itd.

Natomiast nie wiem jak wyswietlic poprawnie rekordy bardziej ogolnie, takie w ktorych nie będą bedzie brana pod uwagę komorka: sys lub lang lub obie. Jesli po prostu nie dam ich w zapytaniu to mam zdublowane rekordy:

| SITE | HIT | DATE |
| strona-1 | 1 | 2008-10-25 |
| strona-1 | 5 | 2008-10-25 |
| strona-1 | 5 | 2008-10-25 |
| strona-1 | 1 | 2008-10-25 |
| strona-1 | 5 | 2008-10-26 |
| strona-1 | 3 | 2008-10-26 |
| strona-1 | 1 | 2008-10-26 |
| strona-1 | 1 | 2008-10-26 |

Chcialbym, aby zdublowane rekordy laczyly sie w taki sposob:

Przyklad zapytania nie uwzgledniajacego sys i lang:

| SITE | HIT | DATE |
| strona-1 | 11 | 2008-10-25 |
| strona-1 | 10 | 2008-10-26 |

Zapytanie z lang LIKE 'en' ale bez sys:

| SITE | HIT | DATE |
| strona-1 | 6 | 2008-10-25 |
| strona-1 | 7 | 2008-10-26 |

Z gory dzieki za jakąkolwiek pomoc, męcze się z tym juz naprawdę sporo czasu.
Go to the top of the page
+Quote Post
empathon
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 31
Dołączył: 13.11.2006
Skąd: się znamy?

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


Przede wszystkim masz źle zaprojektowana bazę danych. Nie jest ona rozbita na "atomy". Masz olbrzymia nadmiarowość danych.
Product, site, sys, lang powinny mieć odzielne tabele a w powyższej ustalasz tylko relacje pomiędzy nimi.

Co do Twojego pytania to GROUP BY.


--------------------
Goldenline: Łukasz Rodziewicz
Go to the top of the page
+Quote Post
m1c
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.10.2008

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


Dzieki za odpowiedz! Wiem zdaje sobie z tego sprawe, ze to nie jest najlepsze rozwiazanie... jak tylko dopadne jakis poradnik/ksiazke na temat baz danych relacyjnych to pokombinuje. Na chwile obecna jest to dla mnie to trudne do opanowania... Jesli chodzi o GRUP BY to za pomoca czego mam grupowac? Bo 'date' ? czy 'site' odpada bo mi znikaja potrzebne rekordy.
Go to the top of the page
+Quote Post

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: 19.08.2025 - 16:07