![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 11.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest następujący mamy dwie tabele
pierwsza: arts gdzie mamy artykuły (id i rożne pola mniej ważne i kategoria) druga rate gdzie mamy oceny "id,uid,artid,rate" uid użytkownik , id arta i ocena 1-10 Tera pobierając artykuły chciałbym posortować je względem tabeli rate (plus kategoria) a dokładnie średniej pola rate. Wiem że należy użyć funkcji AVG do wyliczenia średniej ale dalej pojawia się problem.. gdy skonstruowałem zapytanie pobiera mi tylko jeden rekord (pewnie zła składnia)
z góry thx za pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Czyli chcesz zrobić coś takiego:
- Wybrać artykuły z określonej kategorii, - Połączyć wszystkie artykuły z ocenami doń przypisanymi, - Tak uzyskane krotki artykuł-ocena podzielić na paczki dotyczące określonego artykułu i wyliczyć z nich średnią, - Posortować po owej średniej. Popatrz jak to jest zapisane i jakimi słowami a zapewne Ci to podpowie co robić (IMG:style_emoticons/default/winksmiley.jpg) Najważniejsze to użyć odpowiedniej rzeczy w myślniku trzecim. Pomyśl jak uzyskać to "podzielenie na paczki" po artykule. Bo tutaj siedzi meritum Twojego problemu. Myślę, że jesteś na tyle inteligentny, że łatwo się domyślisz, czego brakuje w przytoczonym przez Ciebie zapytaniu. Bo tylko jednej rzeczy Ci brakuje. Na razie bowiem liczy Ci AVG z wszystkich rekordów w bazie i stąd jeden rekord w wyniku. A powinno liczyć średnią dla każdego artykuły w kategorii, który ma jakąś ocenę wystawioną. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 11.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak myślałem że group by się przyda ;D
oto rozwiązanie skrócone gdyby ktoś inny szukał
Pominąłem już dzielenie (LIMIT) dzięki thek za natchnienie (IMG:style_emoticons/default/smile.gif) Ten post edytował deejay4net 27.10.2009, 12:06:30 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 03:53 |