Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zliczenie i posortowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Kinool
problem nastepujacy:

baza danych z tabela w ktorej znajduja sie jakies prace useor w 2 tabeli znajduja sie komentarze i oceny wystawiane przez innych userow. Oceny sa od 0 do 4 przy czym 0 to brak oceny.

Relacja wyglada mnijwiecej tak prace.praca_id=komentarze.praca_id tak wiec jest to relacja jeden do wielu.

teraz o ile to mozliwe chcialbym zliczyc ile jest komentarzy z ocena 4, z ocena 3, 2 i 1
i posortowac wg. czestosci wystepowania

niby proste ale mam z tym maly problem bo nie wiem jak zrobic w jednym zapytaniu zliczyc po wartosci ktora moze miec rozne wartosci

moze ktos z ma jakies sugestie, pomysly?
mhs
mozesz pokazac strukture bazy danych?

  1. SELECT count(*) FROM prace, komentarze WHERE praca.praca_id = komentarze.praca_id GROUP BY komentarze.ocena


chyba cos takiego, ale nie jestem pewien
Kinool
hmm no niebardzo to dzila jak powinno podalem uproszczona relacje bo jest tam jeszcze pare innych szkopolow ale generalnie chodzi o to zeby posortowac je wg. ilosci wystepowanie danej oceny

najpierw ta praca ktora ma najwiecej 4 jesli jest kilka prac z taka sama iloscia oceny 4 to wtedy wg. oceny 3 tid. potzrebuje pobrac 4 prace

zapytanie wyglda mniejwiecej tak:

  1. SELECT prace.id, prace.autor_id, AVG(komentarze.ocena) AS wynik FROM prace, komentarze, uzytkownicy WHERE prace.id=komentarze.id_pracy AND prace.nominacja=1 AND komentarze.ocena>0 AND uzytkownicy.dzial=2 AND prace.czas>1097445600 GROUP BY prace.id ORDER BY wynik DESC LIMIT 0, 4


tutaj wyciagalem po sredniej ale sytem ten sie troche nie sprawdza i wole wyciagac po ilosci ocen


w twoim pomysle cos jest pokombinuje jeszcze z nim i moze cos uzyskam, ale jesli ktos mialby jakies sugestie to zapraszam do wypowiedzi
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.