Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prawdopodobnie banalny problem z napisaniem zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
m1c
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.
empathon
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.
m1c
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.
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.